From be4f78978faba3d3ceb88df02a7f93a2e09ff1e0 Mon Sep 17 00:00:00 2001 From: Kenji Hosokawa Date: Tue, 3 Aug 2021 18:42:39 +0900 Subject: Initial commit Bug-AGL: SPEC-4033 Signed-off-by: Kenji Hosokawa --- .gitignore | 23 + .gitreview | 6 + README.md | 104 + rba.model.core.edit/.classpath | 7 + rba.model.core.edit/.project | 28 + rba.model.core.edit/META-INF/MANIFEST.MF | 15 + rba.model.core.edit/build.properties | 10 + .../icons/full/obj16/ActivateContent.gif | Bin 0 -> 129 bytes .../full/obj16/ActivateContentStateOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ActiveContents.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ActiveState.gif | Bin 0 -> 129 bytes .../icons/full/obj16/AllocatedContent.gif | Bin 0 -> 129 bytes .../icons/full/obj16/AndOperator.gif | Bin 0 -> 129 bytes .../full/obj16/ArbitrationPolicyExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ComparisonAnd.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ComplexExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Constraint.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ContentValue.gif | Bin 0 -> 129 bytes .../icons/full/obj16/DeactivateContent.gif | Bin 0 -> 129 bytes .../full/obj16/DeactivateContentStateOperator.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/Defeats.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/Displayed.gif | Bin 0 -> 129 bytes .../icons/full/obj16/EqualToOperator.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/Event.gif | Bin 0 -> 129 bytes .../icons/full/obj16/EventProcessing.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ExclusiveOrOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ExistsOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/FindStateMachine.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ForAllOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/GetAllocatables.gif | Bin 0 -> 129 bytes .../icons/full/obj16/GetContentsList.gif | Bin 0 -> 129 bytes .../icons/full/obj16/GetProperty.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/GetState.gif | Bin 0 -> 129 bytes .../icons/full/obj16/GreaterThanOperator.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/Handler.gif | Bin 0 -> 129 bytes .../icons/full/obj16/HasBeenDisplayed.gif | Bin 0 -> 129 bytes .../icons/full/obj16/HasComeEarlierThan.gif | Bin 0 -> 129 bytes .../icons/full/obj16/HasComeLaterThan.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IfActionOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IfStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ImpliesOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IntegerProperty.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IntegerValue.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/IsActive.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsAllocatedTo.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsCanceled.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/IsChanged.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsDefeatedBy.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsDisappeared.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsEqualToOperator.gif | Bin 0 -> 129 bytes .../full/obj16/IsGreaterThanEqualOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsGreaterThanOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsLowerThanEqualOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsLowerThanOperator.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/IsOn.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsRunningOperator.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/IsStateOf.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsTranslatedTo.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/IsTypeOf.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LambdaExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LetStatement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LoserTypeExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/LowerThanOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/MaxOperator.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/MaxValue.gif | Bin 0 -> 129 bytes .../icons/full/obj16/MinOperator.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/MinValue.gif | Bin 0 -> 129 bytes .../icons/full/obj16/MuchGreaterThanOperator.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/NoneValue.gif | Bin 0 -> 129 bytes .../icons/full/obj16/NotOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/NullExpression.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ObjectCompare.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ObjectCompareNot.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ObjectReference.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/OffScene.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/OnScene.gif | Bin 0 -> 129 bytes .../icons/full/obj16/OpaqueAction.gif | Bin 0 -> 129 bytes .../icons/full/obj16/OrOperator.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/Package.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PlusOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PostConstraint.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PreviousModifier.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/Project.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/Rule.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/Scene.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SelectOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SetOfOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SetProperty.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/SetState.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SizeOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/StandardValue.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/State.gif | Bin 0 -> 129 bytes .../icons/full/obj16/StateMachine.gif | Bin 0 -> 129 bytes .../icons/full/obj16/StateValue.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Stereotype.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/Tag.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ThatOfOperator.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Transition.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Undisplayed.gif | Bin 0 -> 129 bytes rba.model.core.edit/icons/full/obj16/Variable.gif | Bin 0 -> 129 bytes rba.model.core.edit/plugin.properties | 227 + rba.model.core.edit/plugin.xml | 22 + .../provider/AbstractAllocatableItemProvider.java | 121 + .../provider/AbstractConstraintItemProvider.java | 292 + .../core/provider/AbstractContentItemProvider.java | 120 + .../provider/AbstractPropertyItemProvider.java | 105 + .../core/provider/AbstractSceneItemProvider.java | 88 + .../core/provider/ActionOperatorItemProvider.java | 90 + .../core/provider/ActiveContentsItemProvider.java | 100 + .../rba/core/provider/ActiveStateItemProvider.java | 100 + .../rba/core/provider/AllocatableItemProvider.java | 311 + .../provider/AllocatableOperatorItemProvider.java | 91 + .../core/provider/AllocatableSetItemProvider.java | 105 + .../provider/AllocatedContentItemProvider.java | 100 + .../rba/core/provider/AndOperatorItemProvider.java | 100 + .../ArbitrationPolicyExpressionItemProvider.java | 127 + .../provider/ArithmeticOperatorItemProvider.java | 90 + .../core/provider/ComparisonAndItemProvider.java | 100 + .../provider/ComparisonOperatorItemProvider.java | 90 + .../provider/ComplexExpressionItemProvider.java | 304 + .../rba/core/provider/ConstraintItemProvider.java | 124 + .../src/rba/core/provider/ContentItemProvider.java | 147 + .../core/provider/ContentOperatorItemProvider.java | 90 + .../rba/core/provider/ContentSetItemProvider.java | 105 + .../core/provider/ContentStateItemProvider.java | 291 + .../provider/ContentStateOperatorItemProvider.java | 91 + .../core/provider/ContentValueItemProvider.java | 100 + .../core/provider/EnumExpressionItemProvider.java | 90 + .../core/provider/EqualToOperatorItemProvider.java | 100 + .../core/provider/ExistsOperatorItemProvider.java | 122 + .../rba/core/provider/ExpressionItemProvider.java | 167 + .../core/provider/ForAllOperatorItemProvider.java | 122 + .../core/provider/GetAllocatablesItemProvider.java | 100 + .../core/provider/GetContentsListItemProvider.java | 100 + .../rba/core/provider/GetPropertyItemProvider.java | 100 + .../rba/core/provider/GetStateItemProvider.java | 114 + .../provider/GreaterThanOperatorItemProvider.java | 101 + .../provider/HasBeenDisplayedItemProvider.java | 100 + .../provider/HasComeEarlierThanItemProvider.java | 100 + .../provider/HasComeLaterThanItemProvider.java | 100 + .../provider/IfActionOperatorItemProvider.java | 98 + .../rba/core/provider/IfStatementItemProvider.java | 660 + .../core/provider/ImpliesOperatorItemProvider.java | 100 + .../core/provider/IntegerPropertyItemProvider.java | 302 + .../core/provider/IntegerValueItemProvider.java | 126 + .../rba/core/provider/IsActiveItemProvider.java | 100 + .../core/provider/IsAllocatedToItemProvider.java | 100 + .../rba/core/provider/IsCanceledItemProvider.java | 100 + .../rba/core/provider/IsChangedItemProvider.java | 100 + .../core/provider/IsDisappearedItemProvider.java | 100 + .../provider/IsEqualToOperatorItemProvider.java | 100 + .../IsGreaterThanEqualOperatorItemProvider.java | 101 + .../IsGreaterThanOperatorItemProvider.java | 101 + .../IsLowerThanEqualOperatorItemProvider.java | 101 + .../provider/IsLowerThanOperatorItemProvider.java | 101 + .../src/rba/core/provider/IsOnItemProvider.java | 100 + .../core/provider/IsTranslatedToItemProvider.java | 100 + .../rba/core/provider/IsTypeOfItemProvider.java | 124 + .../core/provider/LambdaContextItemProvider.java | 153 + .../provider/LambdaExpressionItemProvider.java | 309 + .../core/provider/LetStatementItemProvider.java | 130 + .../core/provider/LogicalOperatorItemProvider.java | 90 + .../provider/LoserTypeExpressionItemProvider.java | 127 + .../provider/LowerThanOperatorItemProvider.java | 100 + .../rba/core/provider/MaxOperatorItemProvider.java | 122 + .../rba/core/provider/MaxValueItemProvider.java | 100 + .../rba/core/provider/MinOperatorItemProvider.java | 122 + .../rba/core/provider/MinValueItemProvider.java | 100 + .../core/provider/ModelElementItemProvider.java | 133 + .../MuchGreaterThanOperatorItemProvider.java | 101 + .../core/provider/NamedElementItemProvider.java | 114 + .../rba/core/provider/NoneValueItemProvider.java | 100 + .../rba/core/provider/NotOperatorItemProvider.java | 100 + .../core/provider/NullExpressionItemProvider.java | 108 + .../core/provider/ObjectCompareItemProvider.java | 100 + .../provider/ObjectCompareNotItemProvider.java | 100 + .../core/provider/ObjectReferenceItemProvider.java | 117 + .../rba/core/provider/OffSceneItemProvider.java | 100 + .../src/rba/core/provider/OnSceneItemProvider.java | 100 + .../rba/core/provider/OperatorItemProvider.java | 294 + .../rba/core/provider/OrOperatorItemProvider.java | 100 + .../provider/PackagableElementItemProvider.java | 88 + .../src/rba/core/provider/PackageItemProvider.java | 157 + .../core/provider/PlusOperatorItemProvider.java | 100 + .../provider/PreviousModifierItemProvider.java | 142 + .../src/rba/core/provider/ProjectItemProvider.java | 143 + .../provider/PropertyOperatorItemProvider.java | 90 + .../RBACoreItemProviderAdapterFactory.java | 1726 + .../src/rba/core/provider/RbaCoreEditPlugin.java | 79 + .../rba/core/provider/RuleObjectItemProvider.java | 129 + .../src/rba/core/provider/SceneItemProvider.java | 160 + .../core/provider/SceneOperatorItemProvider.java | 90 + .../core/provider/SelectOperatorItemProvider.java | 122 + .../core/provider/SetExpressionItemProvider.java | 90 + .../core/provider/SetOfOperatorItemProvider.java | 100 + .../rba/core/provider/SetOperatorItemProvider.java | 90 + .../rba/core/provider/SetPropertyItemProvider.java | 100 + .../core/provider/SizeOperatorItemProvider.java | 100 + .../core/provider/StandardValueItemProvider.java | 100 + .../src/rba/core/provider/StateItemProvider.java | 96 + .../rba/core/provider/StateValueItemProvider.java | 100 + .../rba/core/provider/StereotypeItemProvider.java | 178 + .../src/rba/core/provider/TagItemProvider.java | 132 + .../core/provider/ThatOfOperatorItemProvider.java | 100 + .../core/provider/ValueExpressionItemProvider.java | 90 + .../rba/core/provider/VariableItemProvider.java | 96 + rba.model.core/.classpath | 7 + rba.model.core/.project | 35 + rba.model.core/META-INF/MANIFEST.MF | 16 + rba.model.core/build.properties | 10 + rba.model.core/model/rbacore.aird | 5347 ++ rba.model.core/model/rbacore.ecore | 1669 + rba.model.core/model/rbacore.genmodel | 435 + rba.model.core/plugin.properties | 4 + rba.model.core/plugin.xml | 25 + .../src/rba/core/AbstractAllocatable.java | 86 + .../src/rba/core/AbstractConstraint.java | 51 + rba.model.core/src/rba/core/AbstractContent.java | 87 + rba.model.core/src/rba/core/AbstractProperty.java | 65 + rba.model.core/src/rba/core/AbstractScene.java | 20 + rba.model.core/src/rba/core/ActionOperator.java | 21 + rba.model.core/src/rba/core/ActiveContents.java | 44 + rba.model.core/src/rba/core/ActiveState.java | 44 + rba.model.core/src/rba/core/Allocatable.java | 91 + .../src/rba/core/AllocatableOperator.java | 29 + rba.model.core/src/rba/core/AllocatableSet.java | 54 + rba.model.core/src/rba/core/AllocatedContent.java | 41 + rba.model.core/src/rba/core/AndOperator.java | 32 + rba.model.core/src/rba/core/ArbitrationPolicy.java | 292 + .../src/rba/core/ArbitrationPolicyExpression.java | 80 + .../src/rba/core/ArithmeticOperator.java | 44 + rba.model.core/src/rba/core/ComparisonAnd.java | 44 + .../src/rba/core/ComparisonOperator.java | 44 + rba.model.core/src/rba/core/ComplexExpression.java | 87 + rba.model.core/src/rba/core/Constraint.java | 79 + rba.model.core/src/rba/core/Content.java | 85 + rba.model.core/src/rba/core/ContentOperator.java | 32 + rba.model.core/src/rba/core/ContentSet.java | 55 + rba.model.core/src/rba/core/ContentState.java | 79 + .../src/rba/core/ContentStateOperator.java | 32 + rba.model.core/src/rba/core/ContentValue.java | 44 + rba.model.core/src/rba/core/EnumExpression.java | 57 + rba.model.core/src/rba/core/EqualToOperator.java | 32 + rba.model.core/src/rba/core/ExistsOperator.java | 56 + rba.model.core/src/rba/core/Expression.java | 149 + rba.model.core/src/rba/core/ExpressionType.java | 595 + rba.model.core/src/rba/core/ForAllOperator.java | 56 + rba.model.core/src/rba/core/GetAllocatables.java | 44 + rba.model.core/src/rba/core/GetContentsList.java | 44 + rba.model.core/src/rba/core/GetProperty.java | 44 + rba.model.core/src/rba/core/GetState.java | 34 + .../src/rba/core/GreaterThanOperator.java | 32 + rba.model.core/src/rba/core/HasBeenDisplayed.java | 44 + .../src/rba/core/HasComeEarlierThan.java | 50 + rba.model.core/src/rba/core/HasComeLaterThan.java | 50 + rba.model.core/src/rba/core/IfActionOperator.java | 44 + rba.model.core/src/rba/core/IfStatement.java | 127 + rba.model.core/src/rba/core/ImpliesOperator.java | 32 + rba.model.core/src/rba/core/IntegerProperty.java | 52 + rba.model.core/src/rba/core/IntegerValue.java | 75 + rba.model.core/src/rba/core/IsActive.java | 44 + rba.model.core/src/rba/core/IsAllocatedTo.java | 43 + rba.model.core/src/rba/core/IsCanceled.java | 44 + rba.model.core/src/rba/core/IsChanged.java | 34 + rba.model.core/src/rba/core/IsDisappeared.java | 44 + rba.model.core/src/rba/core/IsEqualToOperator.java | 32 + .../src/rba/core/IsGreaterThanEqualOperator.java | 32 + .../src/rba/core/IsGreaterThanOperator.java | 32 + .../src/rba/core/IsLowerThanEqualOperator.java | 32 + .../src/rba/core/IsLowerThanOperator.java | 32 + rba.model.core/src/rba/core/IsOn.java | 44 + rba.model.core/src/rba/core/IsTranslatedTo.java | 43 + rba.model.core/src/rba/core/IsTypeOf.java | 88 + rba.model.core/src/rba/core/LambdaContext.java | 65 + rba.model.core/src/rba/core/LambdaExpression.java | 129 + rba.model.core/src/rba/core/LetStatement.java | 84 + rba.model.core/src/rba/core/LogicalOperator.java | 44 + rba.model.core/src/rba/core/LoserType.java | 236 + .../src/rba/core/LoserTypeExpression.java | 80 + rba.model.core/src/rba/core/LowerThanOperator.java | 32 + rba.model.core/src/rba/core/MaxOperator.java | 56 + rba.model.core/src/rba/core/MaxValue.java | 44 + rba.model.core/src/rba/core/MinOperator.java | 56 + rba.model.core/src/rba/core/MinValue.java | 44 + rba.model.core/src/rba/core/ModelElement.java | 53 + .../src/rba/core/MuchGreaterThanOperator.java | 32 + rba.model.core/src/rba/core/NamedElement.java | 51 + rba.model.core/src/rba/core/NoneValue.java | 44 + rba.model.core/src/rba/core/NotOperator.java | 44 + rba.model.core/src/rba/core/NullExpression.java | 44 + rba.model.core/src/rba/core/ObjectCompare.java | 56 + rba.model.core/src/rba/core/ObjectCompareNot.java | 43 + rba.model.core/src/rba/core/ObjectReference.java | 75 + rba.model.core/src/rba/core/OffScene.java | 32 + rba.model.core/src/rba/core/OnScene.java | 32 + rba.model.core/src/rba/core/Operator.java | 54 + rba.model.core/src/rba/core/OrOperator.java | 32 + rba.model.core/src/rba/core/PackagableElement.java | 20 + rba.model.core/src/rba/core/Package.java | 43 + rba.model.core/src/rba/core/PlusOperator.java | 32 + rba.model.core/src/rba/core/PreviousModifier.java | 88 + rba.model.core/src/rba/core/Project.java | 91 + rba.model.core/src/rba/core/PropertyOperator.java | 44 + rba.model.core/src/rba/core/RBACoreFactory.java | 618 + rba.model.core/src/rba/core/RBACorePackage.java | 14216 +++ rba.model.core/src/rba/core/RuleObject.java | 54 + rba.model.core/src/rba/core/Scene.java | 84 + rba.model.core/src/rba/core/SceneOperator.java | 32 + rba.model.core/src/rba/core/SelectOperator.java | 56 + rba.model.core/src/rba/core/SetExpression.java | 20 + rba.model.core/src/rba/core/SetOfOperator.java | 56 + rba.model.core/src/rba/core/SetOperator.java | 20 + rba.model.core/src/rba/core/SetProperty.java | 44 + rba.model.core/src/rba/core/SizeOperator.java | 56 + rba.model.core/src/rba/core/StandardValue.java | 44 + rba.model.core/src/rba/core/State.java | 21 + rba.model.core/src/rba/core/StateValue.java | 38 + rba.model.core/src/rba/core/Stereotype.java | 95 + rba.model.core/src/rba/core/SugarExpression.java | 40 + .../src/rba/core/SugarExpressionBase.java | 25 + rba.model.core/src/rba/core/Tag.java | 43 + rba.model.core/src/rba/core/ThatOfOperator.java | 56 + rba.model.core/src/rba/core/ValueExpression.java | 55 + rba.model.core/src/rba/core/Variable.java | 32 + .../rba/core/generator/util/EObjectDecorator.java | 118 + .../util/value/ComparisonAndEvaluator.java | 49 + .../util/value/ComparisonOperatorEvaluator.java | 48 + .../util/value/EqualToOperatorEvaluator.java | 51 + .../generator/util/value/ExpressionEvaluator.java | 56 + .../util/value/GreaterThanOperatorEvaluator.java | 62 + .../value/MuchGreaterThanOperatorEvaluator.java | 65 + .../rba/core/generator/util/value/ValueGroup.java | 35 + .../core/generator/util/value/ValueSortedList.java | 155 + .../src/rba/core/impl/AbstractAllocatableImpl.java | 235 + .../src/rba/core/impl/AbstractConstraintImpl.java | 170 + .../src/rba/core/impl/AbstractContentImpl.java | 230 + .../src/rba/core/impl/AbstractPropertyImpl.java | 208 + .../src/rba/core/impl/AbstractSceneImpl.java | 33 + .../src/rba/core/impl/ActiveContentsImpl.java | 85 + .../src/rba/core/impl/ActiveStateImpl.java | 69 + .../src/rba/core/impl/AllocatableImpl.java | 261 + .../src/rba/core/impl/AllocatableOperatorImpl.java | 62 + .../src/rba/core/impl/AllocatableSetImpl.java | 181 + .../src/rba/core/impl/AllocatedContentImpl.java | 78 + .../src/rba/core/impl/AndOperatorImpl.java | 58 + .../core/impl/ArbitrationPolicyExpressionImpl.java | 193 + .../src/rba/core/impl/ArithmeticOperatorImpl.java | 83 + .../src/rba/core/impl/ComparisonAndImpl.java | 118 + .../src/rba/core/impl/ComparisonOperatorImpl.java | 73 + .../src/rba/core/impl/ComplexExpressionImpl.java | 279 + .../src/rba/core/impl/ConstraintImpl.java | 186 + rba.model.core/src/rba/core/impl/ContentImpl.java | 248 + .../src/rba/core/impl/ContentOperatorImpl.java | 62 + .../src/rba/core/impl/ContentSetImpl.java | 177 + .../src/rba/core/impl/ContentStateImpl.java | 256 + .../rba/core/impl/ContentStateOperatorImpl.java | 62 + .../src/rba/core/impl/ContentValueImpl.java | 69 + .../src/rba/core/impl/EnumExpressionImpl.java | 82 + .../src/rba/core/impl/EqualToOperatorImpl.java | 58 + .../src/rba/core/impl/ExistsOperatorImpl.java | 87 + .../src/rba/core/impl/ExpressionImpl.java | 264 + .../src/rba/core/impl/ForAllOperatorImpl.java | 91 + .../src/rba/core/impl/GetAllocatablesImpl.java | 77 + .../src/rba/core/impl/GetContentsListImpl.java | 77 + .../src/rba/core/impl/GetPropertyImpl.java | 105 + rba.model.core/src/rba/core/impl/GetStateImpl.java | 59 + .../src/rba/core/impl/GreaterThanOperatorImpl.java | 58 + .../src/rba/core/impl/HasBeenDisplayedImpl.java | 69 + .../src/rba/core/impl/HasComeEarlierThanImpl.java | 124 + .../src/rba/core/impl/HasComeLaterThanImpl.java | 124 + .../src/rba/core/impl/IfStatementImpl.java | 354 + .../src/rba/core/impl/ImpliesOperatorImpl.java | 58 + .../src/rba/core/impl/IntegerPropertyImpl.java | 170 + .../src/rba/core/impl/IntegerValueImpl.java | 186 + rba.model.core/src/rba/core/impl/IsActiveImpl.java | 69 + .../src/rba/core/impl/IsAllocatedToImpl.java | 171 + .../src/rba/core/impl/IsChangedImpl.java | 156 + .../src/rba/core/impl/IsEqualToOperatorImpl.java | 58 + .../core/impl/IsGreaterThanEqualOperatorImpl.java | 59 + .../rba/core/impl/IsGreaterThanOperatorImpl.java | 58 + .../core/impl/IsLowerThanEqualOperatorImpl.java | 59 + .../src/rba/core/impl/IsLowerThanOperatorImpl.java | 58 + rba.model.core/src/rba/core/impl/IsOnImpl.java | 69 + .../src/rba/core/impl/IsTranslatedToImpl.java | 191 + rba.model.core/src/rba/core/impl/IsTypeOfImpl.java | 202 + .../src/rba/core/impl/LambdaContextImpl.java | 224 + .../src/rba/core/impl/LambdaExpressionImpl.java | 370 + .../src/rba/core/impl/LetStatementImpl.java | 268 + .../src/rba/core/impl/LogicalOperatorImpl.java | 83 + .../src/rba/core/impl/LoserTypeExpressionImpl.java | 192 + .../src/rba/core/impl/LowerThanOperatorImpl.java | 58 + .../src/rba/core/impl/MaxOperatorImpl.java | 87 + rba.model.core/src/rba/core/impl/MaxValueImpl.java | 68 + .../src/rba/core/impl/MinOperatorImpl.java | 87 + rba.model.core/src/rba/core/impl/MinValueImpl.java | 68 + .../src/rba/core/impl/ModelElementImpl.java | 154 + .../rba/core/impl/MuchGreaterThanOperatorImpl.java | 58 + .../src/rba/core/impl/NamedElementImpl.java | 150 + .../src/rba/core/impl/NoneValueImpl.java | 68 + .../src/rba/core/impl/NotOperatorImpl.java | 110 + .../src/rba/core/impl/NullExpressionImpl.java | 76 + .../src/rba/core/impl/ObjectCompareImpl.java | 86 + .../src/rba/core/impl/ObjectCompareNotImpl.java | 160 + .../src/rba/core/impl/ObjectReferenceImpl.java | 202 + rba.model.core/src/rba/core/impl/OperatorImpl.java | 165 + .../src/rba/core/impl/OrOperatorImpl.java | 58 + .../src/rba/core/impl/PackagableElementImpl.java | 33 + rba.model.core/src/rba/core/impl/PackageImpl.java | 139 + .../src/rba/core/impl/PlusOperatorImpl.java | 58 + .../src/rba/core/impl/PreviousModifierImpl.java | 229 + rba.model.core/src/rba/core/impl/ProjectImpl.java | 233 + .../src/rba/core/impl/PropertyOperatorImpl.java | 73 + .../src/rba/core/impl/RBACoreFactoryImpl.java | 958 + .../src/rba/core/impl/RBACorePackageImpl.java | 4565 + .../src/rba/core/impl/RuleObjectImpl.java | 167 + rba.model.core/src/rba/core/impl/SceneImpl.java | 245 + .../src/rba/core/impl/SceneOperatorImpl.java | 62 + .../src/rba/core/impl/SelectOperatorImpl.java | 92 + .../src/rba/core/impl/SetExpressionImpl.java | 33 + .../src/rba/core/impl/SetOfOperatorImpl.java | 106 + .../src/rba/core/impl/SetOperatorImpl.java | 33 + .../src/rba/core/impl/SizeOperatorImpl.java | 83 + .../src/rba/core/impl/StandardValueImpl.java | 68 + .../src/rba/core/impl/StateValueImpl.java | 69 + .../src/rba/core/impl/StereotypeImpl.java | 263 + rba.model.core/src/rba/core/impl/TagImpl.java | 148 + .../src/rba/core/impl/ThatOfOperatorImpl.java | 83 + .../src/rba/core/impl/ValueExpressionImpl.java | 81 + rba.model.core/src/rba/core/impl/VariableImpl.java | 103 + .../src/rba/core/util/RBACoreAdapterFactory.java | 1861 + .../src/rba/core/util/RBACoreSwitch.java | 2622 + rba.model.sound.edit/.classpath | 7 + rba.model.sound.edit/.project | 28 + rba.model.sound.edit/META-INF/MANIFEST.MF | 17 + rba.model.sound.edit/build.properties | 10 + .../icons/full/obj16/AllInstanceOfSoundContent.gif | Bin 0 -> 129 bytes .../icons/full/obj16/AllInstanceOfZone.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsAttenuated.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsChangedOutput.gif | Bin 0 -> 129 bytes rba.model.sound.edit/icons/full/obj16/IsMuted.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsOutputted.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsOutputtedOn.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsSounding.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsTranslatedSoundTo.gif | Bin 0 -> 129 bytes .../icons/full/obj16/MuteLowerPriority.gif | Bin 0 -> 129 bytes .../icons/full/obj16/OutputtingSound.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SoundContent.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SoundContentSet.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SoundContentState.gif | Bin 0 -> 129 bytes rba.model.sound.edit/icons/full/obj16/Zone.gif | Bin 0 -> 129 bytes rba.model.sound.edit/icons/full/obj16/ZoneSet.gif | Bin 0 -> 129 bytes rba.model.sound.edit/plugin.properties | 49 + rba.model.sound.edit/plugin.xml | 22 + .../AllInstanceOfSoundContentItemProvider.java | 116 + .../provider/AllInstanceOfZoneItemProvider.java | 115 + .../sound/provider/IsAttenuatedItemProvider.java | 101 + .../provider/IsChangedOutputItemProvider.java | 101 + .../rba/sound/provider/IsMutedItemProvider.java | 101 + .../sound/provider/IsOutputtedItemProvider.java | 101 + .../sound/provider/IsOutputtedOnItemProvider.java | 101 + .../rba/sound/provider/IsSoundingItemProvider.java | 101 + .../provider/IsTranslatedSoundToItemProvider.java | 102 + .../provider/MuteLowerPriorityItemProvider.java | 150 + .../provider/OutputtingSoundItemProvider.java | 101 + .../RBASoundItemProviderAdapterFactory.java | 549 + .../src/rba/sound/provider/RbaSoundEditPlugin.java | 81 + .../sound/provider/SoundContentItemProvider.java | 125 + .../provider/SoundContentOperatorItemProvider.java | 141 + .../provider/SoundContentSetItemProvider.java | 112 + .../provider/SoundContentStateItemProvider.java | 148 + .../src/rba/sound/provider/ZoneItemProvider.java | 402 + .../sound/provider/ZoneOperatorItemProvider.java | 140 + .../rba/sound/provider/ZoneSetItemProvider.java | 110 + rba.model.sound/.classpath | 7 + rba.model.sound/.project | 35 + rba.model.sound/META-INF/MANIFEST.MF | 16 + rba.model.sound/build.properties | 10 + rba.model.sound/model/rbasound.aird | 983 + rba.model.sound/model/rbasound.ecore | 267 + rba.model.sound/model/rbasound.genmodel | 83 + rba.model.sound/plugin.properties | 4 + rba.model.sound/plugin.xml | 17 + .../src/rba/sound/AllInstanceOfSoundContent.java | 47 + .../src/rba/sound/AllInstanceOfZone.java | 47 + rba.model.sound/src/rba/sound/IsAttenuated.java | 46 + rba.model.sound/src/rba/sound/IsChangedOutput.java | 37 + rba.model.sound/src/rba/sound/IsMuted.java | 46 + rba.model.sound/src/rba/sound/IsOutputted.java | 46 + rba.model.sound/src/rba/sound/IsOutputtedOn.java | 46 + rba.model.sound/src/rba/sound/IsSounding.java | 32 + .../src/rba/sound/IsTranslatedSoundTo.java | 46 + .../src/rba/sound/MuteLowerPriority.java | 47 + rba.model.sound/src/rba/sound/OutputtingSound.java | 46 + rba.model.sound/src/rba/sound/RBASoundFactory.java | 177 + rba.model.sound/src/rba/sound/RBASoundPackage.java | 2791 + rba.model.sound/src/rba/sound/SoundContent.java | 35 + .../src/rba/sound/SoundContentOperator.java | 35 + rba.model.sound/src/rba/sound/SoundContentSet.java | 35 + .../src/rba/sound/SoundContentState.java | 35 + rba.model.sound/src/rba/sound/Zone.java | 67 + rba.model.sound/src/rba/sound/ZoneOperator.java | 34 + rba.model.sound/src/rba/sound/ZoneSet.java | 35 + .../sound/impl/AllInstanceOfSoundContentImpl.java | 73 + .../src/rba/sound/impl/AllInstanceOfZoneImpl.java | 72 + .../src/rba/sound/impl/IsAttenuatedImpl.java | 70 + .../src/rba/sound/impl/IsChangedOutputImpl.java | 186 + .../src/rba/sound/impl/IsMutedImpl.java | 70 + .../src/rba/sound/impl/IsOutputtedImpl.java | 70 + .../src/rba/sound/impl/IsOutputtedOnImpl.java | 193 + .../src/rba/sound/impl/IsSoundingImpl.java | 58 + .../rba/sound/impl/IsTranslatedSoundToImpl.java | 205 + .../src/rba/sound/impl/MuteLowerPriorityImpl.java | 192 + .../src/rba/sound/impl/OutputtingSoundImpl.java | 70 + .../src/rba/sound/impl/RBASoundFactoryImpl.java | 253 + .../src/rba/sound/impl/RBASoundPackageImpl.java | 925 + .../src/rba/sound/impl/SoundContentImpl.java | 60 + .../rba/sound/impl/SoundContentOperatorImpl.java | 62 + .../src/rba/sound/impl/SoundContentSetImpl.java | 62 + .../src/rba/sound/impl/SoundContentStateImpl.java | 62 + rba.model.sound/src/rba/sound/impl/ZoneImpl.java | 196 + .../src/rba/sound/impl/ZoneOperatorImpl.java | 64 + .../src/rba/sound/impl/ZoneSetImpl.java | 59 + .../src/rba/sound/util/RBASoundAdapterFactory.java | 723 + .../src/rba/sound/util/RBASoundSwitch.java | 827 + rba.model.view.edit/.classpath | 7 + rba.model.view.edit/.project | 28 + rba.model.view.edit/META-INF/MANIFEST.MF | 17 + rba.model.view.edit/build.properties | 10 + .../icons/full/obj16/AllInstanceOfArea.gif | Bin 0 -> 129 bytes .../icons/full/obj16/AllInstanceOfViewContent.gif | Bin 0 -> 129 bytes rba.model.view.edit/icons/full/obj16/Area.gif | Bin 0 -> 129 bytes rba.model.view.edit/icons/full/obj16/AreaSet.gif | Bin 0 -> 129 bytes .../icons/full/obj16/CompositeArea.gif | Bin 0 -> 129 bytes .../icons/full/obj16/CyclicContent.gif | Bin 0 -> 129 bytes rba.model.view.edit/icons/full/obj16/Display.gif | Bin 0 -> 129 bytes .../icons/full/obj16/DisplayingContent.gif | Bin 0 -> 129 bytes .../icons/full/obj16/FixedPositionLayout.gif | Bin 0 -> 129 bytes .../icons/full/obj16/HideLowerPriority.gif | Bin 0 -> 129 bytes .../icons/full/obj16/HorizontalLayout.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsChangedDisplay.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsDisplayed.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsDisplayedOn.gif | Bin 0 -> 129 bytes rba.model.view.edit/icons/full/obj16/IsHidden.gif | Bin 0 -> 129 bytes .../icons/full/obj16/IsTranslatedViewTo.gif | Bin 0 -> 129 bytes rba.model.view.edit/icons/full/obj16/IsVisible.gif | Bin 0 -> 129 bytes .../icons/full/obj16/MessageApp.gif | Bin 0 -> 129 bytes .../icons/full/obj16/MessageContent.gif | Bin 0 -> 129 bytes rba.model.view.edit/icons/full/obj16/Offset.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PositionContainer.gif | Bin 0 -> 129 bytes rba.model.view.edit/icons/full/obj16/Size.gif | Bin 0 -> 129 bytes .../icons/full/obj16/SizeReference.gif | Bin 0 -> 129 bytes .../icons/full/obj16/VerticalLayout.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ViewContent.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ViewContentSet.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ViewContentState.gif | Bin 0 -> 129 bytes rba.model.view.edit/plugin.xml | 22 + .../view/provider/AlignedLayoutItemProvider.java | 131 + .../provider/AllInstanceOfAreaItemProvider.java | 115 + .../AllInstanceOfViewContentItemProvider.java | 116 + .../src/rba/view/provider/AreaItemProvider.java | 404 + .../view/provider/AreaOperatorItemProvider.java | 136 + .../src/rba/view/provider/AreaSetItemProvider.java | 109 + .../view/provider/CompositeAreaItemProvider.java | 158 + .../src/rba/view/provider/DisplayItemProvider.java | 162 + .../provider/DisplayingContentItemProvider.java | 101 + .../provider/FixedPositionLayoutItemProvider.java | 139 + .../provider/HideLowerPriorityItemProvider.java | 147 + .../provider/HorizontalLayoutItemProvider.java | 100 + .../provider/IsChangedDisplayItemProvider.java | 101 + .../rba/view/provider/IsDisplayedItemProvider.java | 101 + .../view/provider/IsDisplayedOnItemProvider.java | 101 + .../rba/view/provider/IsHiddenItemProvider.java | 101 + .../provider/IsTranslatedViewToItemProvider.java | 101 + .../rba/view/provider/IsVisibleItemProvider.java | 101 + .../view/provider/LayoutManagerItemProvider.java | 103 + .../src/rba/view/provider/OffsetItemProvider.java | 190 + .../provider/PositionContainerItemProvider.java | 228 + .../RBAViewItemProviderAdapterFactory.java | 742 + .../src/rba/view/provider/RbaViewEditPlugin.java | 81 + .../view/provider/SizeIdentifierItemProvider.java | 103 + .../src/rba/view/provider/SizeItemProvider.java | 153 + .../view/provider/SizeReferenceItemProvider.java | 112 + .../view/provider/VerticalLayoutItemProvider.java | 100 + .../rba/view/provider/ViewContentItemProvider.java | 161 + .../provider/ViewContentOperatorItemProvider.java | 138 + .../view/provider/ViewContentSetItemProvider.java | 112 + .../provider/ViewContentStateItemProvider.java | 145 + rba.model.view/.classpath | 7 + rba.model.view/.project | 35 + rba.model.view/META-INF/MANIFEST.MF | 16 + rba.model.view/build.properties | 10 + rba.model.view/model/rbaview.aird | 1977 + rba.model.view/model/rbaview.ecore | 441 + rba.model.view/model/rbaview.genmodel | 133 + rba.model.view/plugin.properties | 4 + rba.model.view/plugin.xml | 17 + rba.model.view/src/rba/view/AlignedLayout.java | 81 + rba.model.view/src/rba/view/AllInstanceOfArea.java | 47 + .../src/rba/view/AllInstanceOfViewContent.java | 47 + rba.model.view/src/rba/view/Area.java | 85 + rba.model.view/src/rba/view/AreaOperator.java | 22 + rba.model.view/src/rba/view/AreaSet.java | 35 + rba.model.view/src/rba/view/BasePoint.java | 405 + rba.model.view/src/rba/view/CompositeArea.java | 80 + rba.model.view/src/rba/view/Display.java | 79 + rba.model.view/src/rba/view/DisplayingContent.java | 46 + .../src/rba/view/FixedPositionLayout.java | 52 + rba.model.view/src/rba/view/HideLowerPriority.java | 47 + rba.model.view/src/rba/view/HorizontalLayout.java | 20 + rba.model.view/src/rba/view/IsChangedDisplay.java | 37 + rba.model.view/src/rba/view/IsDisplayed.java | 46 + rba.model.view/src/rba/view/IsDisplayedOn.java | 46 + rba.model.view/src/rba/view/IsHidden.java | 46 + .../src/rba/view/IsTranslatedViewTo.java | 46 + rba.model.view/src/rba/view/IsVisible.java | 32 + rba.model.view/src/rba/view/LayoutManager.java | 35 + rba.model.view/src/rba/view/Offset.java | 159 + rba.model.view/src/rba/view/PositionContainer.java | 207 + rba.model.view/src/rba/view/RBAViewFactory.java | 249 + rba.model.view/src/rba/view/RBAViewPackage.java | 4026 + rba.model.view/src/rba/view/Size.java | 133 + rba.model.view/src/rba/view/SizeIdentifier.java | 18 + rba.model.view/src/rba/view/SizeReference.java | 48 + rba.model.view/src/rba/view/VerticalLayout.java | 20 + rba.model.view/src/rba/view/ViewContent.java | 58 + .../src/rba/view/ViewContentOperator.java | 35 + rba.model.view/src/rba/view/ViewContentSet.java | 35 + rba.model.view/src/rba/view/ViewContentState.java | 35 + .../src/rba/view/impl/AlignedLayoutImpl.java | 221 + .../src/rba/view/impl/AllInstanceOfAreaImpl.java | 72 + .../view/impl/AllInstanceOfViewContentImpl.java | 73 + rba.model.view/src/rba/view/impl/AreaImpl.java | 232 + .../src/rba/view/impl/AreaOperatorImpl.java | 34 + rba.model.view/src/rba/view/impl/AreaSetImpl.java | 57 + .../src/rba/view/impl/CompositeAreaImpl.java | 214 + rba.model.view/src/rba/view/impl/DisplayImpl.java | 240 + .../src/rba/view/impl/DisplayingContentImpl.java | 70 + .../src/rba/view/impl/FixedPositionLayoutImpl.java | 169 + .../src/rba/view/impl/HideLowerPriorityImpl.java | 192 + .../src/rba/view/impl/HorizontalLayoutImpl.java | 33 + .../src/rba/view/impl/IsChangedDisplayImpl.java | 186 + .../src/rba/view/impl/IsDisplayedImpl.java | 70 + .../src/rba/view/impl/IsDisplayedOnImpl.java | 191 + rba.model.view/src/rba/view/impl/IsHiddenImpl.java | 70 + .../src/rba/view/impl/IsTranslatedViewToImpl.java | 205 + .../src/rba/view/impl/IsVisibleImpl.java | 58 + .../src/rba/view/impl/LayoutManagerImpl.java | 63 + rba.model.view/src/rba/view/impl/OffsetImpl.java | 355 + .../src/rba/view/impl/PositionContainerImpl.java | 443 + .../src/rba/view/impl/RBAViewFactoryImpl.java | 390 + .../src/rba/view/impl/RBAViewPackageImpl.java | 1430 + .../src/rba/view/impl/SizeIdentifierImpl.java | 35 + rba.model.view/src/rba/view/impl/SizeImpl.java | 274 + .../src/rba/view/impl/SizeReferenceImpl.java | 146 + .../src/rba/view/impl/VerticalLayoutImpl.java | 33 + .../src/rba/view/impl/ViewContentImpl.java | 160 + .../src/rba/view/impl/ViewContentOperatorImpl.java | 62 + .../src/rba/view/impl/ViewContentSetImpl.java | 62 + .../src/rba/view/impl/ViewContentStateImpl.java | 62 + .../src/rba/view/util/RBAViewAdapterFactory.java | 930 + .../src/rba/view/util/RBAViewSwitch.java | 1107 + rba.tool.core/.classpath | 16 + rba.tool.core/.project | 28 + rba.tool.core/.settings/org.eclipse.jdt.core.prefs | 7 + rba.tool.core/META-INF/MANIFEST.MF | 36 + rba.tool.core/build.properties | 11 + rba.tool.core/icons/info.png | Bin 0 -> 3071 bytes rba.tool.core/icons/rba.gif | Bin 0 -> 960 bytes rba.tool.core/icons/rbaSim.gif | Bin 0 -> 1021 bytes rba.tool.core/lib/groovy-all-2.4.12-indy.jar | Bin 0 -> 6834923 bytes rba.tool.core/lib/z3/JavaExample.java | 2400 + rba.tool.core/lib/z3/Microsoft.Z3.dll | Bin 0 -> 203776 bytes rba.tool.core/lib/z3/Microsoft.Z3.xml | 6648 ++ rba.tool.core/lib/z3/com.microsoft.z3.jar | Bin 0 -> 168237 bytes rba.tool.core/lib/z3/libz3.dll | Bin 0 -> 11362816 bytes rba.tool.core/lib/z3/libz3.lib | Bin 0 -> 138220 bytes rba.tool.core/lib/z3/libz3java.dll | Bin 0 -> 89088 bytes rba.tool.core/lib/z3/libz3java.lib | Bin 0 -> 239520 bytes rba.tool.core/lib/z3/msvcp110.dll | Bin 0 -> 661448 bytes rba.tool.core/lib/z3/msvcr110.dll | Bin 0 -> 828872 bytes rba.tool.core/lib/z3/python/example.py | 36 + rba.tool.core/lib/z3/python/z3/__init__.py | 12 + rba.tool.core/lib/z3/python/z3/z3.py | 9670 ++ rba.tool.core/lib/z3/python/z3/z3consts.py | 314 + rba.tool.core/lib/z3/python/z3/z3core.py | 5459 ++ rba.tool.core/lib/z3/python/z3/z3num.py | 577 + rba.tool.core/lib/z3/python/z3/z3poly.py | 35 + rba.tool.core/lib/z3/python/z3/z3printer.py | 1253 + rba.tool.core/lib/z3/python/z3/z3rcf.py | 163 + rba.tool.core/lib/z3/python/z3/z3types.py | 123 + rba.tool.core/lib/z3/python/z3/z3util.py | 508 + rba.tool.core/lib/z3/vcomp110.dll | Bin 0 -> 124360 bytes rba.tool.core/lib/z3/z3.exe | Bin 0 -> 11519488 bytes rba.tool.core/lib32/z3/LICENSE.txt | 10 + rba.tool.core/lib32/z3/Microsoft.Z3.dll | Bin 0 -> 214528 bytes rba.tool.core/lib32/z3/Microsoft.Z3.xml | 6921 ++ rba.tool.core/lib32/z3/com.microsoft.z3.jar | Bin 0 -> 173416 bytes rba.tool.core/lib32/z3/libz3.dll | Bin 0 -> 10121728 bytes rba.tool.core/lib32/z3/libz3.lib | Bin 0 -> 149322 bytes rba.tool.core/lib32/z3/libz3java.dll | Bin 0 -> 98816 bytes rba.tool.core/lib32/z3/libz3java.lib | Bin 0 -> 265978 bytes rba.tool.core/lib32/z3/msvcp110.dll | Bin 0 -> 534480 bytes rba.tool.core/lib32/z3/msvcr110.dll | Bin 0 -> 862664 bytes rba.tool.core/lib32/z3/python/example.py | 36 + rba.tool.core/lib32/z3/python/z3/__init__.py | 12 + rba.tool.core/lib32/z3/python/z3/__init__.pyc | Bin 0 -> 470 bytes rba.tool.core/lib32/z3/python/z3/z3.py | 10025 ++ rba.tool.core/lib32/z3/python/z3/z3.pyc | Bin 0 -> 352623 bytes rba.tool.core/lib32/z3/python/z3/z3consts.py | 323 + rba.tool.core/lib32/z3/python/z3/z3consts.pyc | Bin 0 -> 9751 bytes rba.tool.core/lib32/z3/python/z3/z3core.py | 4532 + rba.tool.core/lib32/z3/python/z3/z3core.pyc | Bin 0 -> 172650 bytes rba.tool.core/lib32/z3/python/z3/z3num.py | 577 + rba.tool.core/lib32/z3/python/z3/z3num.pyc | Bin 0 -> 19823 bytes rba.tool.core/lib32/z3/python/z3/z3poly.py | 35 + rba.tool.core/lib32/z3/python/z3/z3poly.pyc | Bin 0 -> 1209 bytes rba.tool.core/lib32/z3/python/z3/z3printer.py | 1253 + rba.tool.core/lib32/z3/python/z3/z3printer.pyc | Bin 0 -> 48645 bytes rba.tool.core/lib32/z3/python/z3/z3rcf.py | 163 + rba.tool.core/lib32/z3/python/z3/z3rcf.pyc | Bin 0 -> 7800 bytes rba.tool.core/lib32/z3/python/z3/z3types.py | 123 + rba.tool.core/lib32/z3/python/z3/z3types.pyc | Bin 0 -> 12097 bytes rba.tool.core/lib32/z3/python/z3/z3util.py | 508 + rba.tool.core/lib32/z3/python/z3/z3util.pyc | Bin 0 -> 12502 bytes rba.tool.core/lib32/z3/vcomp110.dll | Bin 0 -> 115656 bytes rba.tool.core/lib32/z3/z3.exe | Bin 0 -> 10316800 bytes rba.tool.core/plugin.properties | 2 + rba.tool.core/plugin.xml | 173 + rba.tool.core/src/rba/tool/core/Activator.java | 49 + .../src/rba/tool/core/console/ConsoleManager.java | 96 + .../src/rba/tool/core/console/IConsoleHook.java | 8 + .../src/rba/tool/core/console/IConsoleManager.java | 14 + .../core/constraint/IConstraintCalculation.java | 14 + .../src/rba/tool/core/marker/MarkerManager.java | 142 + .../rba/tool/core/sort/ComparisonAndEvaluator.java | 49 + .../core/sort/ComparisonOperatorEvaluator.java | 49 + .../src/rba/tool/core/sort/EObjectDecorator.java | 118 + .../tool/core/sort/EqualToOperatorEvaluator.java | 52 + .../rba/tool/core/sort/ExpressionEvaluator.java | 55 + .../core/sort/GreaterThanOperatorEvaluator.java | 64 + .../rba/tool/core/sort/ISortValueCalculation.java | 15 + .../sort/MuchGreaterThanOperatorEvaluator.java | 67 + .../src/rba/tool/core/sort/SortValue.java | 45 + .../src/rba/tool/core/sort/SortValueManager.java | 56 + .../src/rba/tool/core/sort/ValueGroup.java | 35 + .../src/rba/tool/core/sort/ValueSortedList.java | 168 + .../tool/core/ui/BasicTableViewerColumnFilter.java | 72 + .../src/rba/tool/core/ui/CommonValueValidator.java | 51 + .../src/rba/tool/core/util/EmptyToolLogger.java | 20 + .../src/rba/tool/core/util/IToolLogger.java | 8 + .../src/rba/tool/core/util/ModelUtil.java | 29 + .../src/rba/tool/core/util/ResourceUtil.java | 72 + .../src/rba/tool/core/util/SelectionTester.java | 53 + .../src/rba/tool/core/util/SelectionUtil.java | 167 + .../src/rba/tool/core/util/SortResult.java | 38 + .../src/rba/tool/core/util/SortResultSet.java | 25 + .../src/rba/tool/core/util/ToolLogger.java | 79 + .../src/rba/tool/core/util/ValueSort.java | 152 + .../src/rba/tool/core/util/data/ExCommentInfo.java | 32 + .../rba/tool/core/util/data/ExCommentLabel.java | 21 + .../src/rba/tool/core/z3/Z3CodeManager.java | 360 + .../src/rba/tool/core/z3/Z3Constants.java | 18 + rba.tool.editor.endpoint/.classpath | 139 + rba.tool.editor.endpoint/.gitignore | 4 + rba.tool.editor.endpoint/.project | 36 + .../.settings/org.eclipse.core.resources.prefs | 3 + .../.settings/org.eclipse.jdt.core.prefs | 13 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.xtend.core.Xtend.prefs | 7 + .../lib/windows/z3/Microsoft.Z3.dll | Bin 0 -> 203776 bytes .../lib/windows/z3/Microsoft.Z3.xml | 6648 ++ rba.tool.editor.endpoint/lib/windows/z3/libz3.dll | Bin 0 -> 11362816 bytes rba.tool.editor.endpoint/lib/windows/z3/libz3.lib | Bin 0 -> 138220 bytes .../lib/windows/z3/libz3java.dll | Bin 0 -> 89088 bytes .../lib/windows/z3/libz3java.lib | Bin 0 -> 239520 bytes .../lib/windows/z3/msvcp110.dll | Bin 0 -> 661448 bytes .../lib/windows/z3/msvcr110.dll | Bin 0 -> 828872 bytes .../lib/windows/z3/python/example.py | 36 + .../lib/windows/z3/python/z3/__init__.py | 12 + .../lib/windows/z3/python/z3/z3.py | 9670 ++ .../lib/windows/z3/python/z3/z3consts.py | 314 + .../lib/windows/z3/python/z3/z3core.py | 5459 ++ .../lib/windows/z3/python/z3/z3num.py | 577 + .../lib/windows/z3/python/z3/z3poly.py | 35 + .../lib/windows/z3/python/z3/z3printer.py | 1253 + .../lib/windows/z3/python/z3/z3rcf.py | 163 + .../lib/windows/z3/python/z3/z3types.py | 123 + .../lib/windows/z3/python/z3/z3util.py | 508 + .../lib/windows/z3/vcomp110.dll | Bin 0 -> 124360 bytes rba.tool.editor.endpoint/lib/windows/z3/z3.exe | Bin 0 -> 11519488 bytes rba.tool.editor.endpoint/model/all.rba | 145 + rba.tool.editor.endpoint/pom.xml | 324 + rba.tool.editor.endpoint/release_note.md | 4 + .../script/TemplateGenerator.groovy | 1797 + .../endpoint/RBAModelServiceDispatcher.xtend | 37 + .../rba/tool/editor/endpoint/RBAModelServlet.xtend | 68 + .../tool/editor/endpoint/RBAModelWebModule.xtend | 57 + .../tool/editor/endpoint/RBAModelWebSetup.xtend | 48 + .../rba/tool/editor/endpoint/ServerLauncher.xtend | 213 + .../endpoint/generator/RBAModelWebGenerator.xtend | 400 + .../resource/RBAModelContentTypeProvider.xtend | 15 + .../resource/RBAModelResourceSetProvider.xtend | 23 + .../resource/RBAModelWebEncodingProvider.xtend | 16 + .../RBAModelResourceBaseProviderImpl.xtend | 27 + .../RBAModelServerResourceHandler.xtend | 287 + .../template/RBAModel.jsontemplate | 568 + .../xtend-gen/rba/tool/editor/endpoint/.gitignore | 12 + .../rba/tool/editor/endpoint/generator/.gitignore | 6 + .../rba/tool/editor/endpoint/resource/.gitignore | 6 + .../editor/endpoint/server/persistence/.gitignore | 4 + rba.tool.editor.ide/.classpath | 9 + rba.tool.editor.ide/.project | 34 + .../.settings/org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + rba.tool.editor.ide/META-INF/MANIFEST.MF | 16 + rba.tool.editor.ide/build.properties | 7 + rba.tool.editor.ide/plugin.properties | 2 + .../META-INF/services/org.eclipse.xtext.ISetup | 1 + .../tool/editor/ide/AbstractRBAModelIdeModule.java | 60 + .../antlr/PartialRBAModelContentAssistParser.java | 34 + .../ide/contentassist/antlr/RBAModelParser.java | 508 + .../antlr/internal/InternalRBAModel.g | 26662 ++++++ .../antlr/internal/InternalRBAModel.tokens | 314 + .../antlr/internal/InternalRBAModelLexer.java | 6319 ++ .../antlr/internal/InternalRBAModelParser.java | 94035 +++++++++++++++++++ .../rba/tool/editor/ide/RBAModelIdeModule.xtend | 11 + .../src/rba/tool/editor/ide/RBAModelIdeSetup.xtend | 20 + .../xtend-gen/rba/tool/editor/ide/.gitignore | 10 + rba.tool.editor.ui/.classpath | 9 + rba.tool.editor.ui/.project | 34 + .../.settings/org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + rba.tool.editor.ui/META-INF/MANIFEST.MF | 37 + rba.tool.editor.ui/build.properties | 10 + rba.tool.editor.ui/icons/newProject.gif | Bin 0 -> 960 bytes rba.tool.editor.ui/plugin.properties | 2 + rba.tool.editor.ui/plugin.xml | 500 + rba.tool.editor.ui/plugin.xml_gen | 429 + .../tool/editor/ui/AbstractRBAModelUiModule.java | 300 + .../ui/RBAModelExecutableExtensionFactory.java | 29 + .../AbstractRBAModelProposalProvider.java | 943 + .../tool/editor/ui/internal/EditorActivator.java | 95 + .../editor/ui/wizard/RBAModelNewProjectWizard.java | 55 + .../editor/ui/wizard/RBAModelProjectCreator.java | 93 + .../src/rba/tool/editor/ui/RBAModelUiModule.xtend | 101 + .../ui/activator/ExtensionEditorActivator.xtend | 41 + .../ui/builder/RBAModelBuilderParticipant.xtend | 253 + .../resourceloader/RBAModelResourceLoader.xtend | 183 + .../RBAModelExpressionScopeCreator.xtend | 74 + .../contentassist/RBAModelLastSegmentFinder.xtend | 31 + .../contentassist/RBAModelProposalProvider.xtend | 250 + .../ui/coverage/TCLogFormatPreferencePage.java | 83 + .../ui/coverage/TCLogFormatSettingManager.java | 42 + .../edit/processor/RBAModelProcessorUtil.xtend | 177 + .../refactoring/RBAModelRenameElementUtil.java | 143 + .../RBAModelRenameRefactoringController.xtend | 24 + .../model/edit/refactoring/RBAModelSyncUtil.java | 175 + .../editor/model/manager/ResourceManagerUI.xtend | 428 + .../templates/RBAModelTemplateRegistry.xtend | 99 + .../editor/templates/RBAModelTemplateStore.xtend | 30 + .../ui/editor/templates/TemplateRegistry.xtend | 23 + .../RBAModelDescriptionLabelProvider.xtend | 24 + .../editor/ui/labeling/RBAModelLabelProvider.xtend | 31 + .../RBATemplateModelDescriptionLabelProvider.xtend | 24 + .../labeling/RBATemplateModelLabelProvider.xtend | 31 + .../rba/tool/editor/ui/marker/PositionInfo.xtend | 76 + .../editor/ui/marker/RBAModelMarkerCreator.xtend | 34 + .../RBAModelResourceUIValidatorExtension.xtend | 67 + .../src/rba/tool/editor/ui/messages/Messages.java | 29 + .../tool/editor/ui/messages/messages.properties | 9 + .../editor/ui/opener/RBAModelURIEditorOpener.xtend | 129 + .../ui/outline/RBAModelOutlineTreeProvider.xtend | 15 + .../RBATemplateModelOutlineTreeProvider.xtend | 15 + .../properties/RBAServerPropertySettingPage.java | 219 + .../ui/quickfix/RBAModelQuickfixProvider.xtend | 24 + .../RBATemplateModelQuickfixProvider.xtend | 23 + .../ui/recordandplay/RBASimulationRecordPage.java | 50 + .../RBASimulationRecordSettingManager.java | 71 + .../resource/RBADocumentResourceSetProvider.xtend | 27 + .../ui/resource/RBAModelResourceSetProvider.xtend | 37 + .../RBAModelResourceUIServiceProvider.xtend | 36 + .../RBAModelAntlrTokenToAttributeIdMapper.xtend | 14 + .../RBAModelHighlightingConfiguration.xtend | 27 + .../ui/template/RBATemplateApplyModule.xtend | 13 + .../RBATemplateApplyToBeBuiltComputer.xtend | 23 + .../rba/tool/editor/ui/util/CharacterUtil.xtend | 10 + .../tool/editor/ui/util/UnitOfProgressUtil.java | 84 + .../concurrent/AbstractSwitchProjectProgress.java | 40 + .../editor/ui/util/concurrent/IUnitOfProgress.java | 18 + .../ui/wizard/ExtendRBAModelProjectCreator.xtend | 12 + .../ui/wizard/RBAEmptyModelNewProjectWizardEx.java | 48 + .../ui/wizard/RBAModelNewProjectWizardEx.java | 115 + .../RBAModelNewProjectWizardInitialContents.xtend | 12 + .../tool/editor/ui/wizard/RBAModelProjectInfo.java | 10 + .../RBAModelWizardNewProjectCreationPage.java | 14 + ...plateModelNewProjectWizardInitialContents.xtend | 26 + .../ui/wizard/RBATemplateModelProjectInfo.java | 10 + ...ATemplateModelWizardNewProjectCreationPage.java | 14 + .../xtend-gen/rba/tool/editor/ui/.gitignore | 6 + .../rba/tool/editor/ui/activator/.gitignore | 2 + .../rba/tool/editor/ui/builder/.gitignore | 4 + .../editor/ui/builder/resourceloader/.gitignore | 2 + .../rba/tool/editor/ui/compare/.gitignore | 2 + .../rba/tool/editor/ui/contentassist/.gitignore | 11 + .../xtend-gen/rba/tool/editor/ui/editor/.gitignore | 3 + .../rba/tool/editor/ui/editor/model/.gitignore | 6 + .../tool/editor/ui/editor/model/edit/.gitignore | 3 + .../ui/editor/model/edit/processor/.gitignore | 3 + .../ui/editor/model/edit/refactoring/.gitignore | 7 + .../tool/editor/ui/editor/model/manager/.gitignore | 3 + .../tool/editor/ui/editor/reconciler/.gitignore | 3 + .../rba/tool/editor/ui/editor/templates/.gitignore | 10 + .../rba/tool/editor/ui/labeling/.gitignore | 10 + .../xtend-gen/rba/tool/editor/ui/marker/.gitignore | 6 + .../xtend-gen/rba/tool/editor/ui/opener/.gitignore | 2 + .../rba/tool/editor/ui/outline/.gitignore | 5 + .../rba/tool/editor/ui/quickfix/.gitignore | 5 + .../rba/tool/editor/ui/resource/.gitignore | 9 + .../rba/tool/editor/ui/syntaxcoloring/.gitignore | 4 + .../rba/tool/editor/ui/template/.gitignore | 9 + .../xtend-gen/rba/tool/editor/ui/util/.gitignore | 2 + .../xtend-gen/rba/tool/editor/ui/wizard/.gitignore | 7 + rba.tool.editor/.antlr-generator-3.2.0-patch.jar | Bin 0 -> 1484649 bytes rba.tool.editor/.classpath | 9 + ...e RBAModel (rba) Language Infrastructure.launch | 18 + .../.launch/Launch Runtime Eclipse.launch | 35 + rba.tool.editor/.project | 34 + .../.settings/org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + rba.tool.editor/META-INF/MANIFEST.MF | 51 + rba.tool.editor/build.properties | 25 + rba.tool.editor/model/generated/RBAModel.ecore | 24 + rba.tool.editor/model/generated/RBAModel.genmodel | 22 + rba.tool.editor/plugin.properties | 2 + rba.tool.editor/plugin.xml | 11 + rba.tool.editor/plugin.xml_gen | 10 + .../schema/rbaToolEditorExtensionModule.exsd | 99 + .../tool/editor/AbstractRBAModelRuntimeModule.java | 209 + .../src-gen/rba/tool/editor/RBAModel.xtextbin | Bin 0 -> 36017 bytes .../editor/RBAModelStandaloneSetupGenerated.java | 56 + .../antlr/RBAModelAntlrTokenFileProvider.java | 16 + .../tool/editor/parser/antlr/RBAModelParser.java | 40 + .../parser/antlr/internal/InternalRBAModel.g | 10307 ++ .../parser/antlr/internal/InternalRBAModel.tokens | 314 + .../antlr/internal/InternalRBAModelLexer.java | 6319 ++ .../antlr/internal/InternalRBAModelParser.java | 31671 +++++++ .../rba/tool/editor/rbaEditorModel/CTag.java | 20 + .../rba/tool/editor/rbaEditorModel/Import.java | 52 + .../rbaEditorModel/MemberFeatureReference.java | 44 + .../rbaEditorModel/RbaEditorModelFactory.java | 71 + .../rbaEditorModel/RbaEditorModelPackage.java | 447 + .../rba/tool/editor/rbaEditorModel/TopLevel.java | 80 + .../tool/editor/rbaEditorModel/impl/CTagImpl.java | 43 + .../editor/rbaEditorModel/impl/ImportImpl.java | 178 + .../impl/MemberFeatureReferenceImpl.java | 169 + .../impl/RbaEditorModelFactoryImpl.java | 143 + .../impl/RbaEditorModelPackageImpl.java | 311 + .../editor/rbaEditorModel/impl/TopLevelImpl.java | 246 + .../util/RbaEditorModelAdapterFactory.java | 299 + .../rbaEditorModel/util/RbaEditorModelSwitch.java | 280 + .../scoping/AbstractRBAModelScopeProvider.java | 9 + .../serializer/RBAModelSemanticSequencer.java | 5542 ++ .../serializer/RBAModelSyntacticSequencer.java | 1786 + .../editor/services/RBAModelGrammarAccess.java | 9097 ++ .../validation/AbstractRBAModelValidator.java | 23 + .../src/rba/tool/editor/GenerateRBAModel.mwe2 | 74 + rba.tool.editor/src/rba/tool/editor/RBAModel.xtext | 1196 + .../rba/tool/editor/RBAModelRuntimeModule.xtend | 88 + .../rba/tool/editor/RBAModelStandaloneSetup.xtend | 15 + .../editor/formatting2/RBAModelFormatter.xtend | 132 + .../generator/RBAModelGeneratorDelegate.xtend | 184 + .../generator/RBAModelGeneratorExtensions.xtend | 680 + .../generator/json/AbstractJSONGenerator.xtend | 52 + .../editor/generator/json/IJSONGenerator.xtend | 18 + .../json/JSONGeneratorOutputConfiguration.xtend | 18 + .../generator/rtmodel/AbstractRTModelUpdater.xtend | 23 + .../editor/generator/rtmodel/IRTModelUpdater.xtend | 15 + .../z3/ConstraintCodeGenerationSupporter.java | 1599 + .../generator/z3/ConstraintCodeTemplate.java | 315 + .../generator/z3/ConstraintGeneratorImpl.xtend | 48 + .../editor/generator/z3/GeneratorConstants.java | 320 + .../editor/generator/z3/IConstraintGenerator.xtend | 15 + .../editor/generator/z3/ISortValueGenerator.xtend | 15 + .../z3/SortValueCodeGenerationSupporter.java | 555 + .../editor/generator/z3/SortValueCodeTemplate.java | 148 + .../generator/z3/SortValueGeneratorImpl.xtend | 46 + .../rba/tool/editor/linking/RBAModelLinker.xtend | 87 + .../editor/linking/RBAModelLinkingService.xtend | 66 + .../src/rba/tool/editor/messages/Messages.java | 415 + .../rba/tool/editor/messages/messages.properties | 201 + .../model/manager/GlobalIndexResourceSorter.java | 36 + .../editor/model/manager/ResourceManager.xtend | 209 + .../editor/naming/RBAModelSimpleNameProvider.xtend | 62 + .../editor/resource/IRBAModelResourceLoader.xtend | 11 + .../resource/RBAModelEObjectDescription.xtend | 24 + .../resource/RBAModelLocationInFileProvider.xtend | 17 + .../rba/tool/editor/scoping/IExpressionScope.xtend | 22 + .../editor/scoping/RBAModelExpressionScope.xtend | 22 + ...lImportedNamespaceAwareLocalScopeProvider.xtend | 42 + .../editor/scoping/RBAModelScopeProvider.xtend | 85 + .../scoping/internal/IMemberFeatureScopes.xtend | 12 + .../internal/RBAModelMemberFieldScopes.xtend | 31 + .../internal/RBAModelMemberOperationRegistry.xtend | 68 + .../internal/RBAModelMemberOperationScopes.xtend | 27 + .../tool/editor/util/ExtensionModuleManager.java | 63 + .../tool/editor/util/RBAModelEditorNameUtil.xtend | 11 + .../tool/editor/util/RBAModelEditorToolUtil.xtend | 40 + .../CircularContainmentValidationHelper.xtend | 294 + .../ContentAllocatableListValidationHelper.xtend | 105 + .../tool/editor/validation/RBADiagnostician.java | 22 + .../validation/RBAModelCompositeEValidator.xtend | 39 + .../RBAModelCompositeEValidatorProvider.xtend | 25 + .../tool/editor/validation/RBAModelValidator.xtend | 194 + .../validation/UniqueNameValidationHelper.xtend | 211 + .../AbstractContentOperatorValidator.xtend | 7 + .../validators/AbstractContentValidator.xtend | 59 + .../validators/ActiveContentsValidator.xtend | 33 + .../validators/ActiveStateValidator.xtend | 32 + .../validators/AllocatableSetValidator.xtend | 59 + .../validators/AllocatedContentValidator.xtend | 36 + .../validators/AndOperatorValidator.xtend | 35 + .../validation/validators/AreaSetValidator.xtend | 47 + .../validation/validators/AreaValidator.xtend | 74 + .../ComparisonAndOperatorValidator.xtend | 39 + .../validators/CompositeAreaValidator.xtend | 26 + .../validators/ConstraintValidator.xtend | 27 + .../validators/ContentSetValidator.xtend | 59 + .../validators/ContentStateValidator.xtend | 26 + .../validation/validators/ContentValidator.xtend | 20 + .../validators/ContentValueValidator.xtend | 34 + .../validation/validators/DisplayValidator.xtend | 91 + .../validators/DisplayingContentValidator.xtend | 34 + .../validators/EqualToOperatorValidatior.xtend | 42 + .../validators/ExistsOperatorValidator.xtend | 48 + .../validators/FixedPositionLayoutValidator.xtend | 25 + .../validators/ForAllOperatorValidator.xtend | 58 + .../validators/GetAllocatablesValidator.xtend | 34 + .../validators/GetContentsListValidator.xtend | 34 + .../validators/GetPropertyValidator.xtend | 60 + .../validators/GreaterThanOperatorValidator.xtend | 40 + .../validators/HasComeEarlierThanValidator.xtend | 51 + .../validators/HasComeLaterThanValidator.xtend | 51 + .../validators/HideLowerPriorityValidator.xtend | 39 + .../validators/HorizontalLayoutValidator.xtend | 25 + .../validators/IfStatementValidator.xtend | 44 + .../validators/ImpliesOperatorValidator.xtend | 35 + .../validators/IntegerPropertyValidator.xtend | 17 + .../validation/validators/IsActiveValidator.xtend | 34 + .../validators/IsAllocatedToValidator.xtend | 48 + .../validators/IsAttenuatedValidator.xtend | 34 + .../validators/IsCanceledValidator.xtend | 37 + .../validators/IsChangedDisplayValidator.xtend | 32 + .../validators/IsChangedOutputValidator.xtend | 32 + .../validation/validators/IsChangedValidator.xtend | 31 + .../validators/IsDisappearedValidator.xtend | 37 + .../validators/IsDisplayedOnValidator.xtend | 39 + .../validators/IsEqualToOperatorValidator.xtend | 36 + .../IsGreaterThanEqualOperatorValidator.xtend | 36 + .../IsGreaterThanOperatorValidator.xtend | 36 + .../validation/validators/IsHiddenValidator.xtend | 34 + .../IsLowerThanEqualOperatorValidator.xtend | 36 + .../validators/IsLowerThanOperatorValidator.xtend | 36 + .../validation/validators/IsMutedValidator.xtend | 34 + .../validation/validators/IsOnValidator.xtend | 32 + .../validators/IsOutputtedOnValidator.xtend | 39 + .../validators/IsOutputtedValidator.xtend | 34 + .../validators/IsSoundingValidator.xtend | 34 + .../validators/IsTranslatedSoundToValidator.xtend | 39 + .../validators/IsTranslatedToValidator.xtend | 48 + .../validators/IsTranslatedViewToValidator.xtend | 39 + .../validation/validators/IsTypeOfValidator.xtend | 33 + .../validation/validators/IsVisibleValidator.xtend | 34 + .../validators/LambdaExpressionValidator.xtend | 25 + .../validators/LetStatementValidator.xtend | 35 + .../validators/LowerThanOperatorValidator.xtend | 40 + .../validators/MaxOperatorValidator.xtend | 33 + .../validators/MinOperatorValidator.xtend | 33 + .../MuchGreaterThanOperatorValidator.xtend | 40 + .../validators/MuteLowerPriorityValidator.xtend | 39 + .../validators/NamedElementValidator.xtend | 60 + .../validators/NotOperatorValidator.xtend | 34 + .../validators/ObjectCompareNotValidator.xtend | 15 + .../validators/ObjectCompareValidator.xtend | 71 + .../validation/validators/OffSceneValidator.xtend | 33 + .../validation/validators/OffsetValidator.xtend | 64 + .../validation/validators/OnSceneValidator.xtend | 33 + .../validators/OrOperatorValidator.xtend | 35 + .../validators/OutputtingSoundValidator.xtend | 34 + .../validation/validators/PackageValidator.xtend | 31 + .../validators/PlusOperatorValidator.xtend | 47 + .../validators/PositionContainerValidator.xtend | 74 + .../validation/validators/ProjectValidator.xtend | 34 + .../validation/validators/SceneValidator.xtend | 40 + .../validators/SelectOperatorValidator.xtend | 33 + .../validators/SetOfOperatorValidator.xtend | 106 + .../validators/SetPropertyValidator.xtend | 83 + .../validators/SizeOperatorValidator.xtend | 37 + .../validation/validators/SizeValidator.xtend | 28 + .../validators/SoundContentSetValidator.xtend | 70 + .../validators/SoundContentValidator.xtend | 86 + .../validators/StateValueValidator.xtend | 28 + .../validators/ThatOfOperatorValidator.xtend | 69 + .../validation/validators/ValidatorUtils.xtend | 109 + .../validators/VerticalLayoutValidator.xtend | 25 + .../validators/ViewContentSetValidator.xtend | 70 + .../validators/ViewContentValidator.xtend | 91 + .../validation/validators/ZoneSetValidator.xtend | 47 + .../validation/validators/ZoneValidator.xtend | 69 + .../xtend-gen/rba/tool/editor/.gitignore | 10 + .../rba/tool/editor/formatting2/.gitignore | 5 + .../xtend-gen/rba/tool/editor/generator/.gitignore | 11 + .../rba/tool/editor/generator/java/.gitignore | 7 + .../rba/tool/editor/generator/json/.gitignore | 7 + .../rba/tool/editor/generator/rtmodel/.gitignore | 6 + .../rba/tool/editor/generator/rule/.gitignore | 6 + .../rba/tool/editor/generator/z3/.gitignore | 13 + .../xtend-gen/rba/tool/editor/linking/.gitignore | 4 + .../rba/tool/editor/model/manager/.gitignore | 3 + .../xtend-gen/rba/tool/editor/naming/.gitignore | 4 + .../xtend-gen/rba/tool/editor/resource/.gitignore | 6 + .../xtend-gen/rba/tool/editor/scoping/.gitignore | 16 + .../rba/tool/editor/scoping/internal/.gitignore | 8 + .../xtend-gen/rba/tool/editor/util/.gitignore | 4 + .../rba/tool/editor/validation/.gitignore | 20 + .../tool/editor/validation/validators/.gitignore | 3 + rba.tool.lib.groovy/.classpath | 7 + rba.tool.lib.groovy/.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 7 + rba.tool.lib.groovy/META-INF/MANIFEST.MF | 126 + rba.tool.lib.groovy/build.properties | 4 + rba.tool.lib.groovy/lib/groovy-all-2.4.12-indy.jar | Bin 0 -> 6834923 bytes rba.tool.lib.groovy/plugin.properties | 2 + rba.tool.lib.json/.classpath | 7 + rba.tool.lib.json/.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 7 + rba.tool.lib.json/META-INF/MANIFEST.MF | 11 + rba.tool.lib.json/build.properties | 4 + rba.tool.lib.json/lib/java-json.jar | Bin 0 -> 84697 bytes rba.tool.lib.json/plugin.properties | 2 + 1139 files changed, 399393 insertions(+) create mode 100644 .gitignore create mode 100644 .gitreview create mode 100644 README.md create mode 100644 rba.model.core.edit/.classpath create mode 100644 rba.model.core.edit/.project create mode 100644 rba.model.core.edit/META-INF/MANIFEST.MF create mode 100644 rba.model.core.edit/build.properties create mode 100644 rba.model.core.edit/icons/full/obj16/ActivateContent.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ActivateContentStateOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ActiveContents.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ActiveState.gif create mode 100644 rba.model.core.edit/icons/full/obj16/AllocatedContent.gif create mode 100644 rba.model.core.edit/icons/full/obj16/AndOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ArbitrationPolicyExpression.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ComparisonAnd.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ComplexExpression.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Constraint.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ContentValue.gif create mode 100644 rba.model.core.edit/icons/full/obj16/DeactivateContent.gif create mode 100644 rba.model.core.edit/icons/full/obj16/DeactivateContentStateOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Defeats.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Displayed.gif create mode 100644 rba.model.core.edit/icons/full/obj16/EqualToOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Event.gif create mode 100644 rba.model.core.edit/icons/full/obj16/EventProcessing.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ExclusiveOrOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ExistsOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/FindStateMachine.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ForAllOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/GetAllocatables.gif create mode 100644 rba.model.core.edit/icons/full/obj16/GetContentsList.gif create mode 100644 rba.model.core.edit/icons/full/obj16/GetProperty.gif create mode 100644 rba.model.core.edit/icons/full/obj16/GetState.gif create mode 100644 rba.model.core.edit/icons/full/obj16/GreaterThanOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Handler.gif create mode 100644 rba.model.core.edit/icons/full/obj16/HasBeenDisplayed.gif create mode 100644 rba.model.core.edit/icons/full/obj16/HasComeEarlierThan.gif create mode 100644 rba.model.core.edit/icons/full/obj16/HasComeLaterThan.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IfActionOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IfStatement.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ImpliesOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IntegerProperty.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IntegerValue.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsActive.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsAllocatedTo.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsCanceled.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsChanged.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsDefeatedBy.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsDisappeared.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsEqualToOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsGreaterThanEqualOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsGreaterThanOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsLowerThanEqualOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsLowerThanOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsOn.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsRunningOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsStateOf.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsTranslatedTo.gif create mode 100644 rba.model.core.edit/icons/full/obj16/IsTypeOf.gif create mode 100644 rba.model.core.edit/icons/full/obj16/LambdaExpression.gif create mode 100644 rba.model.core.edit/icons/full/obj16/LetStatement.gif create mode 100644 rba.model.core.edit/icons/full/obj16/LoserTypeExpression.gif create mode 100644 rba.model.core.edit/icons/full/obj16/LowerThanOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/MaxOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/MaxValue.gif create mode 100644 rba.model.core.edit/icons/full/obj16/MinOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/MinValue.gif create mode 100644 rba.model.core.edit/icons/full/obj16/MuchGreaterThanOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/NoneValue.gif create mode 100644 rba.model.core.edit/icons/full/obj16/NotOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/NullExpression.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ObjectCompare.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ObjectCompareNot.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ObjectReference.gif create mode 100644 rba.model.core.edit/icons/full/obj16/OffScene.gif create mode 100644 rba.model.core.edit/icons/full/obj16/OnScene.gif create mode 100644 rba.model.core.edit/icons/full/obj16/OpaqueAction.gif create mode 100644 rba.model.core.edit/icons/full/obj16/OrOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Package.gif create mode 100644 rba.model.core.edit/icons/full/obj16/PlusOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/PostConstraint.gif create mode 100644 rba.model.core.edit/icons/full/obj16/PreviousModifier.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Project.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Rule.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Scene.gif create mode 100644 rba.model.core.edit/icons/full/obj16/SelectOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/SetOfOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/SetProperty.gif create mode 100644 rba.model.core.edit/icons/full/obj16/SetState.gif create mode 100644 rba.model.core.edit/icons/full/obj16/SizeOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/StandardValue.gif create mode 100644 rba.model.core.edit/icons/full/obj16/State.gif create mode 100644 rba.model.core.edit/icons/full/obj16/StateMachine.gif create mode 100644 rba.model.core.edit/icons/full/obj16/StateValue.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Stereotype.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Tag.gif create mode 100644 rba.model.core.edit/icons/full/obj16/ThatOfOperator.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Transition.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Undisplayed.gif create mode 100644 rba.model.core.edit/icons/full/obj16/Variable.gif create mode 100644 rba.model.core.edit/plugin.properties create mode 100644 rba.model.core.edit/plugin.xml create mode 100644 rba.model.core.edit/src/rba/core/provider/AbstractAllocatableItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/AbstractConstraintItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/AbstractContentItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/AbstractPropertyItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/AbstractSceneItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ActionOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ActiveContentsItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ActiveStateItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/AllocatableItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/AllocatableOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/AllocatableSetItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/AllocatedContentItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/AndOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ArbitrationPolicyExpressionItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ArithmeticOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ComparisonAndItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ComparisonOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ComplexExpressionItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ConstraintItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ContentItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ContentOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ContentSetItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ContentStateItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ContentStateOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ContentValueItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/EnumExpressionItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/EqualToOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ExistsOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ExpressionItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ForAllOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/GetAllocatablesItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/GetContentsListItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/GetPropertyItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/GetStateItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/GreaterThanOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/HasBeenDisplayedItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/HasComeEarlierThanItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/HasComeLaterThanItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IfActionOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IfStatementItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ImpliesOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IntegerPropertyItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IntegerValueItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsActiveItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsAllocatedToItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsCanceledItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsChangedItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsDisappearedItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsEqualToOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsGreaterThanEqualOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsGreaterThanOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsLowerThanEqualOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsLowerThanOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsOnItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsTranslatedToItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/IsTypeOfItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/LambdaContextItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/LambdaExpressionItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/LetStatementItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/LogicalOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/LoserTypeExpressionItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/LowerThanOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/MaxOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/MaxValueItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/MinOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/MinValueItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ModelElementItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/MuchGreaterThanOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/NamedElementItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/NoneValueItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/NotOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/NullExpressionItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ObjectCompareItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ObjectCompareNotItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ObjectReferenceItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/OffSceneItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/OnSceneItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/OperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/OrOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/PackagableElementItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/PackageItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/PlusOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/PreviousModifierItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ProjectItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/PropertyOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/RBACoreItemProviderAdapterFactory.java create mode 100644 rba.model.core.edit/src/rba/core/provider/RbaCoreEditPlugin.java create mode 100644 rba.model.core.edit/src/rba/core/provider/RuleObjectItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/SceneItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/SceneOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/SelectOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/SetExpressionItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/SetOfOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/SetOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/SetPropertyItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/SizeOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/StandardValueItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/StateItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/StateValueItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/StereotypeItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/TagItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ThatOfOperatorItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/ValueExpressionItemProvider.java create mode 100644 rba.model.core.edit/src/rba/core/provider/VariableItemProvider.java create mode 100644 rba.model.core/.classpath create mode 100644 rba.model.core/.project create mode 100644 rba.model.core/META-INF/MANIFEST.MF create mode 100644 rba.model.core/build.properties create mode 100644 rba.model.core/model/rbacore.aird create mode 100644 rba.model.core/model/rbacore.ecore create mode 100644 rba.model.core/model/rbacore.genmodel create mode 100644 rba.model.core/plugin.properties create mode 100644 rba.model.core/plugin.xml create mode 100644 rba.model.core/src/rba/core/AbstractAllocatable.java create mode 100644 rba.model.core/src/rba/core/AbstractConstraint.java create mode 100644 rba.model.core/src/rba/core/AbstractContent.java create mode 100644 rba.model.core/src/rba/core/AbstractProperty.java create mode 100644 rba.model.core/src/rba/core/AbstractScene.java create mode 100644 rba.model.core/src/rba/core/ActionOperator.java create mode 100644 rba.model.core/src/rba/core/ActiveContents.java create mode 100644 rba.model.core/src/rba/core/ActiveState.java create mode 100644 rba.model.core/src/rba/core/Allocatable.java create mode 100644 rba.model.core/src/rba/core/AllocatableOperator.java create mode 100644 rba.model.core/src/rba/core/AllocatableSet.java create mode 100644 rba.model.core/src/rba/core/AllocatedContent.java create mode 100644 rba.model.core/src/rba/core/AndOperator.java create mode 100644 rba.model.core/src/rba/core/ArbitrationPolicy.java create mode 100644 rba.model.core/src/rba/core/ArbitrationPolicyExpression.java create mode 100644 rba.model.core/src/rba/core/ArithmeticOperator.java create mode 100644 rba.model.core/src/rba/core/ComparisonAnd.java create mode 100644 rba.model.core/src/rba/core/ComparisonOperator.java create mode 100644 rba.model.core/src/rba/core/ComplexExpression.java create mode 100644 rba.model.core/src/rba/core/Constraint.java create mode 100644 rba.model.core/src/rba/core/Content.java create mode 100644 rba.model.core/src/rba/core/ContentOperator.java create mode 100644 rba.model.core/src/rba/core/ContentSet.java create mode 100644 rba.model.core/src/rba/core/ContentState.java create mode 100644 rba.model.core/src/rba/core/ContentStateOperator.java create mode 100644 rba.model.core/src/rba/core/ContentValue.java create mode 100644 rba.model.core/src/rba/core/EnumExpression.java create mode 100644 rba.model.core/src/rba/core/EqualToOperator.java create mode 100644 rba.model.core/src/rba/core/ExistsOperator.java create mode 100644 rba.model.core/src/rba/core/Expression.java create mode 100644 rba.model.core/src/rba/core/ExpressionType.java create mode 100644 rba.model.core/src/rba/core/ForAllOperator.java create mode 100644 rba.model.core/src/rba/core/GetAllocatables.java create mode 100644 rba.model.core/src/rba/core/GetContentsList.java create mode 100644 rba.model.core/src/rba/core/GetProperty.java create mode 100644 rba.model.core/src/rba/core/GetState.java create mode 100644 rba.model.core/src/rba/core/GreaterThanOperator.java create mode 100644 rba.model.core/src/rba/core/HasBeenDisplayed.java create mode 100644 rba.model.core/src/rba/core/HasComeEarlierThan.java create mode 100644 rba.model.core/src/rba/core/HasComeLaterThan.java create mode 100644 rba.model.core/src/rba/core/IfActionOperator.java create mode 100644 rba.model.core/src/rba/core/IfStatement.java create mode 100644 rba.model.core/src/rba/core/ImpliesOperator.java create mode 100644 rba.model.core/src/rba/core/IntegerProperty.java create mode 100644 rba.model.core/src/rba/core/IntegerValue.java create mode 100644 rba.model.core/src/rba/core/IsActive.java create mode 100644 rba.model.core/src/rba/core/IsAllocatedTo.java create mode 100644 rba.model.core/src/rba/core/IsCanceled.java create mode 100644 rba.model.core/src/rba/core/IsChanged.java create mode 100644 rba.model.core/src/rba/core/IsDisappeared.java create mode 100644 rba.model.core/src/rba/core/IsEqualToOperator.java create mode 100644 rba.model.core/src/rba/core/IsGreaterThanEqualOperator.java create mode 100644 rba.model.core/src/rba/core/IsGreaterThanOperator.java create mode 100644 rba.model.core/src/rba/core/IsLowerThanEqualOperator.java create mode 100644 rba.model.core/src/rba/core/IsLowerThanOperator.java create mode 100644 rba.model.core/src/rba/core/IsOn.java create mode 100644 rba.model.core/src/rba/core/IsTranslatedTo.java create mode 100644 rba.model.core/src/rba/core/IsTypeOf.java create mode 100644 rba.model.core/src/rba/core/LambdaContext.java create mode 100644 rba.model.core/src/rba/core/LambdaExpression.java create mode 100644 rba.model.core/src/rba/core/LetStatement.java create mode 100644 rba.model.core/src/rba/core/LogicalOperator.java create mode 100644 rba.model.core/src/rba/core/LoserType.java create mode 100644 rba.model.core/src/rba/core/LoserTypeExpression.java create mode 100644 rba.model.core/src/rba/core/LowerThanOperator.java create mode 100644 rba.model.core/src/rba/core/MaxOperator.java create mode 100644 rba.model.core/src/rba/core/MaxValue.java create mode 100644 rba.model.core/src/rba/core/MinOperator.java create mode 100644 rba.model.core/src/rba/core/MinValue.java create mode 100644 rba.model.core/src/rba/core/ModelElement.java create mode 100644 rba.model.core/src/rba/core/MuchGreaterThanOperator.java create mode 100644 rba.model.core/src/rba/core/NamedElement.java create mode 100644 rba.model.core/src/rba/core/NoneValue.java create mode 100644 rba.model.core/src/rba/core/NotOperator.java create mode 100644 rba.model.core/src/rba/core/NullExpression.java create mode 100644 rba.model.core/src/rba/core/ObjectCompare.java create mode 100644 rba.model.core/src/rba/core/ObjectCompareNot.java create mode 100644 rba.model.core/src/rba/core/ObjectReference.java create mode 100644 rba.model.core/src/rba/core/OffScene.java create mode 100644 rba.model.core/src/rba/core/OnScene.java create mode 100644 rba.model.core/src/rba/core/Operator.java create mode 100644 rba.model.core/src/rba/core/OrOperator.java create mode 100644 rba.model.core/src/rba/core/PackagableElement.java create mode 100644 rba.model.core/src/rba/core/Package.java create mode 100644 rba.model.core/src/rba/core/PlusOperator.java create mode 100644 rba.model.core/src/rba/core/PreviousModifier.java create mode 100644 rba.model.core/src/rba/core/Project.java create mode 100644 rba.model.core/src/rba/core/PropertyOperator.java create mode 100644 rba.model.core/src/rba/core/RBACoreFactory.java create mode 100644 rba.model.core/src/rba/core/RBACorePackage.java create mode 100644 rba.model.core/src/rba/core/RuleObject.java create mode 100644 rba.model.core/src/rba/core/Scene.java create mode 100644 rba.model.core/src/rba/core/SceneOperator.java create mode 100644 rba.model.core/src/rba/core/SelectOperator.java create mode 100644 rba.model.core/src/rba/core/SetExpression.java create mode 100644 rba.model.core/src/rba/core/SetOfOperator.java create mode 100644 rba.model.core/src/rba/core/SetOperator.java create mode 100644 rba.model.core/src/rba/core/SetProperty.java create mode 100644 rba.model.core/src/rba/core/SizeOperator.java create mode 100644 rba.model.core/src/rba/core/StandardValue.java create mode 100644 rba.model.core/src/rba/core/State.java create mode 100644 rba.model.core/src/rba/core/StateValue.java create mode 100644 rba.model.core/src/rba/core/Stereotype.java create mode 100644 rba.model.core/src/rba/core/SugarExpression.java create mode 100644 rba.model.core/src/rba/core/SugarExpressionBase.java create mode 100644 rba.model.core/src/rba/core/Tag.java create mode 100644 rba.model.core/src/rba/core/ThatOfOperator.java create mode 100644 rba.model.core/src/rba/core/ValueExpression.java create mode 100644 rba.model.core/src/rba/core/Variable.java create mode 100644 rba.model.core/src/rba/core/generator/util/EObjectDecorator.java create mode 100644 rba.model.core/src/rba/core/generator/util/value/ComparisonAndEvaluator.java create mode 100644 rba.model.core/src/rba/core/generator/util/value/ComparisonOperatorEvaluator.java create mode 100644 rba.model.core/src/rba/core/generator/util/value/EqualToOperatorEvaluator.java create mode 100644 rba.model.core/src/rba/core/generator/util/value/ExpressionEvaluator.java create mode 100644 rba.model.core/src/rba/core/generator/util/value/GreaterThanOperatorEvaluator.java create mode 100644 rba.model.core/src/rba/core/generator/util/value/MuchGreaterThanOperatorEvaluator.java create mode 100644 rba.model.core/src/rba/core/generator/util/value/ValueGroup.java create mode 100644 rba.model.core/src/rba/core/generator/util/value/ValueSortedList.java create mode 100644 rba.model.core/src/rba/core/impl/AbstractAllocatableImpl.java create mode 100644 rba.model.core/src/rba/core/impl/AbstractConstraintImpl.java create mode 100644 rba.model.core/src/rba/core/impl/AbstractContentImpl.java create mode 100644 rba.model.core/src/rba/core/impl/AbstractPropertyImpl.java create mode 100644 rba.model.core/src/rba/core/impl/AbstractSceneImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ActiveContentsImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ActiveStateImpl.java create mode 100644 rba.model.core/src/rba/core/impl/AllocatableImpl.java create mode 100644 rba.model.core/src/rba/core/impl/AllocatableOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/AllocatableSetImpl.java create mode 100644 rba.model.core/src/rba/core/impl/AllocatedContentImpl.java create mode 100644 rba.model.core/src/rba/core/impl/AndOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ArbitrationPolicyExpressionImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ArithmeticOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ComparisonAndImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ComparisonOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ComplexExpressionImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ConstraintImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ContentImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ContentOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ContentSetImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ContentStateImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ContentStateOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ContentValueImpl.java create mode 100644 rba.model.core/src/rba/core/impl/EnumExpressionImpl.java create mode 100644 rba.model.core/src/rba/core/impl/EqualToOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ExistsOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ExpressionImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ForAllOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/GetAllocatablesImpl.java create mode 100644 rba.model.core/src/rba/core/impl/GetContentsListImpl.java create mode 100644 rba.model.core/src/rba/core/impl/GetPropertyImpl.java create mode 100644 rba.model.core/src/rba/core/impl/GetStateImpl.java create mode 100644 rba.model.core/src/rba/core/impl/GreaterThanOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/HasBeenDisplayedImpl.java create mode 100644 rba.model.core/src/rba/core/impl/HasComeEarlierThanImpl.java create mode 100644 rba.model.core/src/rba/core/impl/HasComeLaterThanImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IfStatementImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ImpliesOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IntegerPropertyImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IntegerValueImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IsActiveImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IsAllocatedToImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IsChangedImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IsEqualToOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IsGreaterThanEqualOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IsGreaterThanOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IsLowerThanEqualOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IsLowerThanOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IsOnImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IsTranslatedToImpl.java create mode 100644 rba.model.core/src/rba/core/impl/IsTypeOfImpl.java create mode 100644 rba.model.core/src/rba/core/impl/LambdaContextImpl.java create mode 100644 rba.model.core/src/rba/core/impl/LambdaExpressionImpl.java create mode 100644 rba.model.core/src/rba/core/impl/LetStatementImpl.java create mode 100644 rba.model.core/src/rba/core/impl/LogicalOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/LoserTypeExpressionImpl.java create mode 100644 rba.model.core/src/rba/core/impl/LowerThanOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/MaxOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/MaxValueImpl.java create mode 100644 rba.model.core/src/rba/core/impl/MinOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/MinValueImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ModelElementImpl.java create mode 100644 rba.model.core/src/rba/core/impl/MuchGreaterThanOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/NamedElementImpl.java create mode 100644 rba.model.core/src/rba/core/impl/NoneValueImpl.java create mode 100644 rba.model.core/src/rba/core/impl/NotOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/NullExpressionImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ObjectCompareImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ObjectCompareNotImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ObjectReferenceImpl.java create mode 100644 rba.model.core/src/rba/core/impl/OperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/OrOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/PackagableElementImpl.java create mode 100644 rba.model.core/src/rba/core/impl/PackageImpl.java create mode 100644 rba.model.core/src/rba/core/impl/PlusOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/PreviousModifierImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ProjectImpl.java create mode 100644 rba.model.core/src/rba/core/impl/PropertyOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/RBACoreFactoryImpl.java create mode 100644 rba.model.core/src/rba/core/impl/RBACorePackageImpl.java create mode 100644 rba.model.core/src/rba/core/impl/RuleObjectImpl.java create mode 100644 rba.model.core/src/rba/core/impl/SceneImpl.java create mode 100644 rba.model.core/src/rba/core/impl/SceneOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/SelectOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/SetExpressionImpl.java create mode 100644 rba.model.core/src/rba/core/impl/SetOfOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/SetOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/SizeOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/StandardValueImpl.java create mode 100644 rba.model.core/src/rba/core/impl/StateValueImpl.java create mode 100644 rba.model.core/src/rba/core/impl/StereotypeImpl.java create mode 100644 rba.model.core/src/rba/core/impl/TagImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ThatOfOperatorImpl.java create mode 100644 rba.model.core/src/rba/core/impl/ValueExpressionImpl.java create mode 100644 rba.model.core/src/rba/core/impl/VariableImpl.java create mode 100644 rba.model.core/src/rba/core/util/RBACoreAdapterFactory.java create mode 100644 rba.model.core/src/rba/core/util/RBACoreSwitch.java create mode 100644 rba.model.sound.edit/.classpath create mode 100644 rba.model.sound.edit/.project create mode 100644 rba.model.sound.edit/META-INF/MANIFEST.MF create mode 100644 rba.model.sound.edit/build.properties create mode 100644 rba.model.sound.edit/icons/full/obj16/AllInstanceOfSoundContent.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/AllInstanceOfZone.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/IsAttenuated.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/IsChangedOutput.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/IsMuted.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/IsOutputted.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/IsOutputtedOn.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/IsSounding.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/IsTranslatedSoundTo.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/MuteLowerPriority.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/OutputtingSound.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/SoundContent.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/SoundContentSet.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/SoundContentState.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/Zone.gif create mode 100644 rba.model.sound.edit/icons/full/obj16/ZoneSet.gif create mode 100644 rba.model.sound.edit/plugin.properties create mode 100644 rba.model.sound.edit/plugin.xml create mode 100644 rba.model.sound.edit/src/rba/sound/provider/AllInstanceOfSoundContentItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/AllInstanceOfZoneItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/IsAttenuatedItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/IsChangedOutputItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/IsMutedItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/IsOutputtedItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/IsOutputtedOnItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/IsSoundingItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/IsTranslatedSoundToItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/MuteLowerPriorityItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/OutputtingSoundItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/RBASoundItemProviderAdapterFactory.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/RbaSoundEditPlugin.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/SoundContentItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/SoundContentOperatorItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/SoundContentSetItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/SoundContentStateItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/ZoneItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/ZoneOperatorItemProvider.java create mode 100644 rba.model.sound.edit/src/rba/sound/provider/ZoneSetItemProvider.java create mode 100644 rba.model.sound/.classpath create mode 100644 rba.model.sound/.project create mode 100644 rba.model.sound/META-INF/MANIFEST.MF create mode 100644 rba.model.sound/build.properties create mode 100644 rba.model.sound/model/rbasound.aird create mode 100644 rba.model.sound/model/rbasound.ecore create mode 100644 rba.model.sound/model/rbasound.genmodel create mode 100644 rba.model.sound/plugin.properties create mode 100644 rba.model.sound/plugin.xml create mode 100644 rba.model.sound/src/rba/sound/AllInstanceOfSoundContent.java create mode 100644 rba.model.sound/src/rba/sound/AllInstanceOfZone.java create mode 100644 rba.model.sound/src/rba/sound/IsAttenuated.java create mode 100644 rba.model.sound/src/rba/sound/IsChangedOutput.java create mode 100644 rba.model.sound/src/rba/sound/IsMuted.java create mode 100644 rba.model.sound/src/rba/sound/IsOutputted.java create mode 100644 rba.model.sound/src/rba/sound/IsOutputtedOn.java create mode 100644 rba.model.sound/src/rba/sound/IsSounding.java create mode 100644 rba.model.sound/src/rba/sound/IsTranslatedSoundTo.java create mode 100644 rba.model.sound/src/rba/sound/MuteLowerPriority.java create mode 100644 rba.model.sound/src/rba/sound/OutputtingSound.java create mode 100644 rba.model.sound/src/rba/sound/RBASoundFactory.java create mode 100644 rba.model.sound/src/rba/sound/RBASoundPackage.java create mode 100644 rba.model.sound/src/rba/sound/SoundContent.java create mode 100644 rba.model.sound/src/rba/sound/SoundContentOperator.java create mode 100644 rba.model.sound/src/rba/sound/SoundContentSet.java create mode 100644 rba.model.sound/src/rba/sound/SoundContentState.java create mode 100644 rba.model.sound/src/rba/sound/Zone.java create mode 100644 rba.model.sound/src/rba/sound/ZoneOperator.java create mode 100644 rba.model.sound/src/rba/sound/ZoneSet.java create mode 100644 rba.model.sound/src/rba/sound/impl/AllInstanceOfSoundContentImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/AllInstanceOfZoneImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/IsAttenuatedImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/IsChangedOutputImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/IsMutedImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/IsOutputtedImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/IsOutputtedOnImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/IsSoundingImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/IsTranslatedSoundToImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/MuteLowerPriorityImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/OutputtingSoundImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/RBASoundFactoryImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/RBASoundPackageImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/SoundContentImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/SoundContentOperatorImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/SoundContentSetImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/SoundContentStateImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/ZoneImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/ZoneOperatorImpl.java create mode 100644 rba.model.sound/src/rba/sound/impl/ZoneSetImpl.java create mode 100644 rba.model.sound/src/rba/sound/util/RBASoundAdapterFactory.java create mode 100644 rba.model.sound/src/rba/sound/util/RBASoundSwitch.java create mode 100644 rba.model.view.edit/.classpath create mode 100644 rba.model.view.edit/.project create mode 100644 rba.model.view.edit/META-INF/MANIFEST.MF create mode 100644 rba.model.view.edit/build.properties create mode 100644 rba.model.view.edit/icons/full/obj16/AllInstanceOfArea.gif create mode 100644 rba.model.view.edit/icons/full/obj16/AllInstanceOfViewContent.gif create mode 100644 rba.model.view.edit/icons/full/obj16/Area.gif create mode 100644 rba.model.view.edit/icons/full/obj16/AreaSet.gif create mode 100644 rba.model.view.edit/icons/full/obj16/CompositeArea.gif create mode 100644 rba.model.view.edit/icons/full/obj16/CyclicContent.gif create mode 100644 rba.model.view.edit/icons/full/obj16/Display.gif create mode 100644 rba.model.view.edit/icons/full/obj16/DisplayingContent.gif create mode 100644 rba.model.view.edit/icons/full/obj16/FixedPositionLayout.gif create mode 100644 rba.model.view.edit/icons/full/obj16/HideLowerPriority.gif create mode 100644 rba.model.view.edit/icons/full/obj16/HorizontalLayout.gif create mode 100644 rba.model.view.edit/icons/full/obj16/IsChangedDisplay.gif create mode 100644 rba.model.view.edit/icons/full/obj16/IsDisplayed.gif create mode 100644 rba.model.view.edit/icons/full/obj16/IsDisplayedOn.gif create mode 100644 rba.model.view.edit/icons/full/obj16/IsHidden.gif create mode 100644 rba.model.view.edit/icons/full/obj16/IsTranslatedViewTo.gif create mode 100644 rba.model.view.edit/icons/full/obj16/IsVisible.gif create mode 100644 rba.model.view.edit/icons/full/obj16/MessageApp.gif create mode 100644 rba.model.view.edit/icons/full/obj16/MessageContent.gif create mode 100644 rba.model.view.edit/icons/full/obj16/Offset.gif create mode 100644 rba.model.view.edit/icons/full/obj16/PositionContainer.gif create mode 100644 rba.model.view.edit/icons/full/obj16/Size.gif create mode 100644 rba.model.view.edit/icons/full/obj16/SizeReference.gif create mode 100644 rba.model.view.edit/icons/full/obj16/VerticalLayout.gif create mode 100644 rba.model.view.edit/icons/full/obj16/ViewContent.gif create mode 100644 rba.model.view.edit/icons/full/obj16/ViewContentSet.gif create mode 100644 rba.model.view.edit/icons/full/obj16/ViewContentState.gif create mode 100644 rba.model.view.edit/plugin.xml create mode 100644 rba.model.view.edit/src/rba/view/provider/AlignedLayoutItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/AllInstanceOfAreaItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/AllInstanceOfViewContentItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/AreaItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/AreaOperatorItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/AreaSetItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/CompositeAreaItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/DisplayItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/DisplayingContentItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/FixedPositionLayoutItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/HideLowerPriorityItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/HorizontalLayoutItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/IsChangedDisplayItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/IsDisplayedItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/IsDisplayedOnItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/IsHiddenItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/IsTranslatedViewToItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/IsVisibleItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/LayoutManagerItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/OffsetItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/PositionContainerItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/RBAViewItemProviderAdapterFactory.java create mode 100644 rba.model.view.edit/src/rba/view/provider/RbaViewEditPlugin.java create mode 100644 rba.model.view.edit/src/rba/view/provider/SizeIdentifierItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/SizeItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/SizeReferenceItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/VerticalLayoutItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/ViewContentItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/ViewContentOperatorItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/ViewContentSetItemProvider.java create mode 100644 rba.model.view.edit/src/rba/view/provider/ViewContentStateItemProvider.java create mode 100644 rba.model.view/.classpath create mode 100644 rba.model.view/.project create mode 100644 rba.model.view/META-INF/MANIFEST.MF create mode 100644 rba.model.view/build.properties create mode 100644 rba.model.view/model/rbaview.aird create mode 100644 rba.model.view/model/rbaview.ecore create mode 100644 rba.model.view/model/rbaview.genmodel create mode 100644 rba.model.view/plugin.properties create mode 100644 rba.model.view/plugin.xml create mode 100644 rba.model.view/src/rba/view/AlignedLayout.java create mode 100644 rba.model.view/src/rba/view/AllInstanceOfArea.java create mode 100644 rba.model.view/src/rba/view/AllInstanceOfViewContent.java create mode 100644 rba.model.view/src/rba/view/Area.java create mode 100644 rba.model.view/src/rba/view/AreaOperator.java create mode 100644 rba.model.view/src/rba/view/AreaSet.java create mode 100644 rba.model.view/src/rba/view/BasePoint.java create mode 100644 rba.model.view/src/rba/view/CompositeArea.java create mode 100644 rba.model.view/src/rba/view/Display.java create mode 100644 rba.model.view/src/rba/view/DisplayingContent.java create mode 100644 rba.model.view/src/rba/view/FixedPositionLayout.java create mode 100644 rba.model.view/src/rba/view/HideLowerPriority.java create mode 100644 rba.model.view/src/rba/view/HorizontalLayout.java create mode 100644 rba.model.view/src/rba/view/IsChangedDisplay.java create mode 100644 rba.model.view/src/rba/view/IsDisplayed.java create mode 100644 rba.model.view/src/rba/view/IsDisplayedOn.java create mode 100644 rba.model.view/src/rba/view/IsHidden.java create mode 100644 rba.model.view/src/rba/view/IsTranslatedViewTo.java create mode 100644 rba.model.view/src/rba/view/IsVisible.java create mode 100644 rba.model.view/src/rba/view/LayoutManager.java create mode 100644 rba.model.view/src/rba/view/Offset.java create mode 100644 rba.model.view/src/rba/view/PositionContainer.java create mode 100644 rba.model.view/src/rba/view/RBAViewFactory.java create mode 100644 rba.model.view/src/rba/view/RBAViewPackage.java create mode 100644 rba.model.view/src/rba/view/Size.java create mode 100644 rba.model.view/src/rba/view/SizeIdentifier.java create mode 100644 rba.model.view/src/rba/view/SizeReference.java create mode 100644 rba.model.view/src/rba/view/VerticalLayout.java create mode 100644 rba.model.view/src/rba/view/ViewContent.java create mode 100644 rba.model.view/src/rba/view/ViewContentOperator.java create mode 100644 rba.model.view/src/rba/view/ViewContentSet.java create mode 100644 rba.model.view/src/rba/view/ViewContentState.java create mode 100644 rba.model.view/src/rba/view/impl/AlignedLayoutImpl.java create mode 100644 rba.model.view/src/rba/view/impl/AllInstanceOfAreaImpl.java create mode 100644 rba.model.view/src/rba/view/impl/AllInstanceOfViewContentImpl.java create mode 100644 rba.model.view/src/rba/view/impl/AreaImpl.java create mode 100644 rba.model.view/src/rba/view/impl/AreaOperatorImpl.java create mode 100644 rba.model.view/src/rba/view/impl/AreaSetImpl.java create mode 100644 rba.model.view/src/rba/view/impl/CompositeAreaImpl.java create mode 100644 rba.model.view/src/rba/view/impl/DisplayImpl.java create mode 100644 rba.model.view/src/rba/view/impl/DisplayingContentImpl.java create mode 100644 rba.model.view/src/rba/view/impl/FixedPositionLayoutImpl.java create mode 100644 rba.model.view/src/rba/view/impl/HideLowerPriorityImpl.java create mode 100644 rba.model.view/src/rba/view/impl/HorizontalLayoutImpl.java create mode 100644 rba.model.view/src/rba/view/impl/IsChangedDisplayImpl.java create mode 100644 rba.model.view/src/rba/view/impl/IsDisplayedImpl.java create mode 100644 rba.model.view/src/rba/view/impl/IsDisplayedOnImpl.java create mode 100644 rba.model.view/src/rba/view/impl/IsHiddenImpl.java create mode 100644 rba.model.view/src/rba/view/impl/IsTranslatedViewToImpl.java create mode 100644 rba.model.view/src/rba/view/impl/IsVisibleImpl.java create mode 100644 rba.model.view/src/rba/view/impl/LayoutManagerImpl.java create mode 100644 rba.model.view/src/rba/view/impl/OffsetImpl.java create mode 100644 rba.model.view/src/rba/view/impl/PositionContainerImpl.java create mode 100644 rba.model.view/src/rba/view/impl/RBAViewFactoryImpl.java create mode 100644 rba.model.view/src/rba/view/impl/RBAViewPackageImpl.java create mode 100644 rba.model.view/src/rba/view/impl/SizeIdentifierImpl.java create mode 100644 rba.model.view/src/rba/view/impl/SizeImpl.java create mode 100644 rba.model.view/src/rba/view/impl/SizeReferenceImpl.java create mode 100644 rba.model.view/src/rba/view/impl/VerticalLayoutImpl.java create mode 100644 rba.model.view/src/rba/view/impl/ViewContentImpl.java create mode 100644 rba.model.view/src/rba/view/impl/ViewContentOperatorImpl.java create mode 100644 rba.model.view/src/rba/view/impl/ViewContentSetImpl.java create mode 100644 rba.model.view/src/rba/view/impl/ViewContentStateImpl.java create mode 100644 rba.model.view/src/rba/view/util/RBAViewAdapterFactory.java create mode 100644 rba.model.view/src/rba/view/util/RBAViewSwitch.java create mode 100644 rba.tool.core/.classpath create mode 100644 rba.tool.core/.project create mode 100644 rba.tool.core/.settings/org.eclipse.jdt.core.prefs create mode 100644 rba.tool.core/META-INF/MANIFEST.MF create mode 100644 rba.tool.core/build.properties create mode 100644 rba.tool.core/icons/info.png create mode 100644 rba.tool.core/icons/rba.gif create mode 100644 rba.tool.core/icons/rbaSim.gif create mode 100644 rba.tool.core/lib/groovy-all-2.4.12-indy.jar create mode 100644 rba.tool.core/lib/z3/JavaExample.java create mode 100644 rba.tool.core/lib/z3/Microsoft.Z3.dll create mode 100644 rba.tool.core/lib/z3/Microsoft.Z3.xml create mode 100644 rba.tool.core/lib/z3/com.microsoft.z3.jar create mode 100644 rba.tool.core/lib/z3/libz3.dll create mode 100644 rba.tool.core/lib/z3/libz3.lib create mode 100644 rba.tool.core/lib/z3/libz3java.dll create mode 100644 rba.tool.core/lib/z3/libz3java.lib create mode 100644 rba.tool.core/lib/z3/msvcp110.dll create mode 100644 rba.tool.core/lib/z3/msvcr110.dll create mode 100644 rba.tool.core/lib/z3/python/example.py create mode 100644 rba.tool.core/lib/z3/python/z3/__init__.py create mode 100644 rba.tool.core/lib/z3/python/z3/z3.py create mode 100644 rba.tool.core/lib/z3/python/z3/z3consts.py create mode 100644 rba.tool.core/lib/z3/python/z3/z3core.py create mode 100644 rba.tool.core/lib/z3/python/z3/z3num.py create mode 100644 rba.tool.core/lib/z3/python/z3/z3poly.py create mode 100644 rba.tool.core/lib/z3/python/z3/z3printer.py create mode 100644 rba.tool.core/lib/z3/python/z3/z3rcf.py create mode 100644 rba.tool.core/lib/z3/python/z3/z3types.py create mode 100644 rba.tool.core/lib/z3/python/z3/z3util.py create mode 100644 rba.tool.core/lib/z3/vcomp110.dll create mode 100644 rba.tool.core/lib/z3/z3.exe create mode 100644 rba.tool.core/lib32/z3/LICENSE.txt create mode 100644 rba.tool.core/lib32/z3/Microsoft.Z3.dll create mode 100644 rba.tool.core/lib32/z3/Microsoft.Z3.xml create mode 100644 rba.tool.core/lib32/z3/com.microsoft.z3.jar create mode 100644 rba.tool.core/lib32/z3/libz3.dll create mode 100644 rba.tool.core/lib32/z3/libz3.lib create mode 100644 rba.tool.core/lib32/z3/libz3java.dll create mode 100644 rba.tool.core/lib32/z3/libz3java.lib create mode 100644 rba.tool.core/lib32/z3/msvcp110.dll create mode 100644 rba.tool.core/lib32/z3/msvcr110.dll create mode 100644 rba.tool.core/lib32/z3/python/example.py create mode 100644 rba.tool.core/lib32/z3/python/z3/__init__.py create mode 100644 rba.tool.core/lib32/z3/python/z3/__init__.pyc create mode 100644 rba.tool.core/lib32/z3/python/z3/z3.py create mode 100644 rba.tool.core/lib32/z3/python/z3/z3.pyc create mode 100644 rba.tool.core/lib32/z3/python/z3/z3consts.py create mode 100644 rba.tool.core/lib32/z3/python/z3/z3consts.pyc create mode 100644 rba.tool.core/lib32/z3/python/z3/z3core.py create mode 100644 rba.tool.core/lib32/z3/python/z3/z3core.pyc create mode 100644 rba.tool.core/lib32/z3/python/z3/z3num.py create mode 100644 rba.tool.core/lib32/z3/python/z3/z3num.pyc create mode 100644 rba.tool.core/lib32/z3/python/z3/z3poly.py create mode 100644 rba.tool.core/lib32/z3/python/z3/z3poly.pyc create mode 100644 rba.tool.core/lib32/z3/python/z3/z3printer.py create mode 100644 rba.tool.core/lib32/z3/python/z3/z3printer.pyc create mode 100644 rba.tool.core/lib32/z3/python/z3/z3rcf.py create mode 100644 rba.tool.core/lib32/z3/python/z3/z3rcf.pyc create mode 100644 rba.tool.core/lib32/z3/python/z3/z3types.py create mode 100644 rba.tool.core/lib32/z3/python/z3/z3types.pyc create mode 100644 rba.tool.core/lib32/z3/python/z3/z3util.py create mode 100644 rba.tool.core/lib32/z3/python/z3/z3util.pyc create mode 100644 rba.tool.core/lib32/z3/vcomp110.dll create mode 100644 rba.tool.core/lib32/z3/z3.exe create mode 100644 rba.tool.core/plugin.properties create mode 100644 rba.tool.core/plugin.xml create mode 100644 rba.tool.core/src/rba/tool/core/Activator.java create mode 100644 rba.tool.core/src/rba/tool/core/console/ConsoleManager.java create mode 100644 rba.tool.core/src/rba/tool/core/console/IConsoleHook.java create mode 100644 rba.tool.core/src/rba/tool/core/console/IConsoleManager.java create mode 100644 rba.tool.core/src/rba/tool/core/constraint/IConstraintCalculation.java create mode 100644 rba.tool.core/src/rba/tool/core/marker/MarkerManager.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/ComparisonAndEvaluator.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/ComparisonOperatorEvaluator.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/EObjectDecorator.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/EqualToOperatorEvaluator.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/ExpressionEvaluator.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/GreaterThanOperatorEvaluator.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/ISortValueCalculation.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/MuchGreaterThanOperatorEvaluator.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/SortValue.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/SortValueManager.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/ValueGroup.java create mode 100644 rba.tool.core/src/rba/tool/core/sort/ValueSortedList.java create mode 100644 rba.tool.core/src/rba/tool/core/ui/BasicTableViewerColumnFilter.java create mode 100644 rba.tool.core/src/rba/tool/core/ui/CommonValueValidator.java create mode 100644 rba.tool.core/src/rba/tool/core/util/EmptyToolLogger.java create mode 100644 rba.tool.core/src/rba/tool/core/util/IToolLogger.java create mode 100644 rba.tool.core/src/rba/tool/core/util/ModelUtil.java create mode 100644 rba.tool.core/src/rba/tool/core/util/ResourceUtil.java create mode 100644 rba.tool.core/src/rba/tool/core/util/SelectionTester.java create mode 100644 rba.tool.core/src/rba/tool/core/util/SelectionUtil.java create mode 100644 rba.tool.core/src/rba/tool/core/util/SortResult.java create mode 100644 rba.tool.core/src/rba/tool/core/util/SortResultSet.java create mode 100644 rba.tool.core/src/rba/tool/core/util/ToolLogger.java create mode 100644 rba.tool.core/src/rba/tool/core/util/ValueSort.java create mode 100644 rba.tool.core/src/rba/tool/core/util/data/ExCommentInfo.java create mode 100644 rba.tool.core/src/rba/tool/core/util/data/ExCommentLabel.java create mode 100644 rba.tool.core/src/rba/tool/core/z3/Z3CodeManager.java create mode 100644 rba.tool.core/src/rba/tool/core/z3/Z3Constants.java create mode 100644 rba.tool.editor.endpoint/.classpath create mode 100644 rba.tool.editor.endpoint/.gitignore create mode 100644 rba.tool.editor.endpoint/.project create mode 100644 rba.tool.editor.endpoint/.settings/org.eclipse.core.resources.prefs create mode 100644 rba.tool.editor.endpoint/.settings/org.eclipse.jdt.core.prefs create mode 100644 rba.tool.editor.endpoint/.settings/org.eclipse.m2e.core.prefs create mode 100644 rba.tool.editor.endpoint/.settings/org.eclipse.xtend.core.Xtend.prefs create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/Microsoft.Z3.dll create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/Microsoft.Z3.xml create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/libz3.dll create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/libz3.lib create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/libz3java.dll create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/libz3java.lib create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/msvcp110.dll create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/msvcr110.dll create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/python/example.py create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/python/z3/__init__.py create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3.py create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3consts.py create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3core.py create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3num.py create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3poly.py create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3printer.py create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3rcf.py create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3types.py create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3util.py create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/vcomp110.dll create mode 100644 rba.tool.editor.endpoint/lib/windows/z3/z3.exe create mode 100644 rba.tool.editor.endpoint/model/all.rba create mode 100644 rba.tool.editor.endpoint/pom.xml create mode 100644 rba.tool.editor.endpoint/release_note.md create mode 100644 rba.tool.editor.endpoint/script/TemplateGenerator.groovy create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelServiceDispatcher.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelServlet.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelWebModule.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelWebSetup.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/ServerLauncher.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/generator/RBAModelWebGenerator.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelContentTypeProvider.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelWebEncodingProvider.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelResourceBaseProviderImpl.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelServerResourceHandler.xtend create mode 100644 rba.tool.editor.endpoint/template/RBAModel.jsontemplate create mode 100644 rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/.gitignore create mode 100644 rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/generator/.gitignore create mode 100644 rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/resource/.gitignore create mode 100644 rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/server/persistence/.gitignore create mode 100644 rba.tool.editor.ide/.classpath create mode 100644 rba.tool.editor.ide/.project create mode 100644 rba.tool.editor.ide/.settings/org.eclipse.core.resources.prefs create mode 100644 rba.tool.editor.ide/.settings/org.eclipse.jdt.core.prefs create mode 100644 rba.tool.editor.ide/META-INF/MANIFEST.MF create mode 100644 rba.tool.editor.ide/build.properties create mode 100644 rba.tool.editor.ide/plugin.properties create mode 100644 rba.tool.editor.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup create mode 100644 rba.tool.editor.ide/src-gen/rba/tool/editor/ide/AbstractRBAModelIdeModule.java create mode 100644 rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/PartialRBAModelContentAssistParser.java create mode 100644 rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/RBAModelParser.java create mode 100644 rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModel.g create mode 100644 rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModel.tokens create mode 100644 rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModelLexer.java create mode 100644 rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModelParser.java create mode 100644 rba.tool.editor.ide/src/rba/tool/editor/ide/RBAModelIdeModule.xtend create mode 100644 rba.tool.editor.ide/src/rba/tool/editor/ide/RBAModelIdeSetup.xtend create mode 100644 rba.tool.editor.ide/xtend-gen/rba/tool/editor/ide/.gitignore create mode 100644 rba.tool.editor.ui/.classpath create mode 100644 rba.tool.editor.ui/.project create mode 100644 rba.tool.editor.ui/.settings/org.eclipse.core.resources.prefs create mode 100644 rba.tool.editor.ui/.settings/org.eclipse.jdt.core.prefs create mode 100644 rba.tool.editor.ui/META-INF/MANIFEST.MF create mode 100644 rba.tool.editor.ui/build.properties create mode 100644 rba.tool.editor.ui/icons/newProject.gif create mode 100644 rba.tool.editor.ui/plugin.properties create mode 100644 rba.tool.editor.ui/plugin.xml create mode 100644 rba.tool.editor.ui/plugin.xml_gen create mode 100644 rba.tool.editor.ui/src-gen/rba/tool/editor/ui/AbstractRBAModelUiModule.java create mode 100644 rba.tool.editor.ui/src-gen/rba/tool/editor/ui/RBAModelExecutableExtensionFactory.java create mode 100644 rba.tool.editor.ui/src-gen/rba/tool/editor/ui/contentassist/AbstractRBAModelProposalProvider.java create mode 100644 rba.tool.editor.ui/src-gen/rba/tool/editor/ui/internal/EditorActivator.java create mode 100644 rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelNewProjectWizard.java create mode 100644 rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelProjectCreator.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/RBAModelUiModule.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/builder/RBAModelBuilderParticipant.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/builder/resourceloader/RBAModelResourceLoader.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelExpressionScopeCreator.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelLastSegmentFinder.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelProposalProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatPreferencePage.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatSettingManager.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/processor/RBAModelProcessorUtil.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameElementUtil.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameRefactoringController.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelSyncUtil.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/manager/ResourceManagerUI.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateRegistry.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateStore.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/TemplateRegistry.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelDescriptionLabelProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelLabelProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelDescriptionLabelProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelLabelProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/marker/PositionInfo.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelMarkerCreator.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelResourceUIValidatorExtension.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/messages/Messages.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/messages/messages.properties create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/opener/RBAModelURIEditorOpener.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBAModelOutlineTreeProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBATemplateModelOutlineTreeProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/properties/RBAServerPropertySettingPage.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBAModelQuickfixProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBATemplateModelQuickfixProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordPage.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordSettingManager.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBADocumentResourceSetProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceSetProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceUIServiceProvider.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelAntlrTokenToAttributeIdMapper.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelHighlightingConfiguration.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyModule.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyToBeBuiltComputer.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/util/CharacterUtil.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/util/UnitOfProgressUtil.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/AbstractSwitchProjectProgress.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/IUnitOfProgress.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/activator/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/resourceloader/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/compare/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/contentassist/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/processor/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/refactoring/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/manager/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/reconciler/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/templates/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/labeling/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/marker/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/opener/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/outline/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/quickfix/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/resource/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/syntaxcoloring/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/template/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/util/.gitignore create mode 100644 rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/wizard/.gitignore create mode 100644 rba.tool.editor/.antlr-generator-3.2.0-patch.jar create mode 100644 rba.tool.editor/.classpath create mode 100644 rba.tool.editor/.launch/Generate RBAModel (rba) Language Infrastructure.launch create mode 100644 rba.tool.editor/.launch/Launch Runtime Eclipse.launch create mode 100644 rba.tool.editor/.project create mode 100644 rba.tool.editor/.settings/org.eclipse.core.resources.prefs create mode 100644 rba.tool.editor/.settings/org.eclipse.jdt.core.prefs create mode 100644 rba.tool.editor/META-INF/MANIFEST.MF create mode 100644 rba.tool.editor/build.properties create mode 100644 rba.tool.editor/model/generated/RBAModel.ecore create mode 100644 rba.tool.editor/model/generated/RBAModel.genmodel create mode 100644 rba.tool.editor/plugin.properties create mode 100644 rba.tool.editor/plugin.xml create mode 100644 rba.tool.editor/plugin.xml_gen create mode 100644 rba.tool.editor/schema/rbaToolEditorExtensionModule.exsd create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/AbstractRBAModelRuntimeModule.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/RBAModel.xtextbin create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/RBAModelStandaloneSetupGenerated.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/RBAModelAntlrTokenFileProvider.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/RBAModelParser.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModel.g create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModel.tokens create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModelLexer.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModelParser.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/CTag.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/Import.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/MemberFeatureReference.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/RbaEditorModelFactory.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/RbaEditorModelPackage.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/TopLevel.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/CTagImpl.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/ImportImpl.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/MemberFeatureReferenceImpl.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/RbaEditorModelFactoryImpl.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/RbaEditorModelPackageImpl.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/TopLevelImpl.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/util/RbaEditorModelAdapterFactory.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/util/RbaEditorModelSwitch.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/scoping/AbstractRBAModelScopeProvider.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/serializer/RBAModelSemanticSequencer.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/serializer/RBAModelSyntacticSequencer.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/services/RBAModelGrammarAccess.java create mode 100644 rba.tool.editor/src-gen/rba/tool/editor/validation/AbstractRBAModelValidator.java create mode 100644 rba.tool.editor/src/rba/tool/editor/GenerateRBAModel.mwe2 create mode 100644 rba.tool.editor/src/rba/tool/editor/RBAModel.xtext create mode 100644 rba.tool.editor/src/rba/tool/editor/RBAModelRuntimeModule.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/RBAModelStandaloneSetup.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/formatting2/RBAModelFormatter.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/RBAModelGeneratorDelegate.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/RBAModelGeneratorExtensions.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/json/AbstractJSONGenerator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/json/IJSONGenerator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/json/JSONGeneratorOutputConfiguration.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/rtmodel/AbstractRTModelUpdater.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/rtmodel/IRTModelUpdater.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintCodeGenerationSupporter.java create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintCodeTemplate.java create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintGeneratorImpl.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/z3/GeneratorConstants.java create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/z3/IConstraintGenerator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/z3/ISortValueGenerator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueCodeGenerationSupporter.java create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueCodeTemplate.java create mode 100644 rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueGeneratorImpl.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/linking/RBAModelLinker.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/linking/RBAModelLinkingService.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/messages/Messages.java create mode 100644 rba.tool.editor/src/rba/tool/editor/messages/messages.properties create mode 100644 rba.tool.editor/src/rba/tool/editor/model/manager/GlobalIndexResourceSorter.java create mode 100644 rba.tool.editor/src/rba/tool/editor/model/manager/ResourceManager.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/naming/RBAModelSimpleNameProvider.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/resource/IRBAModelResourceLoader.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/resource/RBAModelEObjectDescription.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/resource/RBAModelLocationInFileProvider.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/scoping/IExpressionScope.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/scoping/RBAModelExpressionScope.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/scoping/RBAModelImportedNamespaceAwareLocalScopeProvider.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/scoping/RBAModelScopeProvider.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/scoping/internal/IMemberFeatureScopes.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberFieldScopes.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberOperationRegistry.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberOperationScopes.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/util/ExtensionModuleManager.java create mode 100644 rba.tool.editor/src/rba/tool/editor/util/RBAModelEditorNameUtil.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/util/RBAModelEditorToolUtil.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/CircularContainmentValidationHelper.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/ContentAllocatableListValidationHelper.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/RBADiagnostician.java create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/RBAModelCompositeEValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/RBAModelCompositeEValidatorProvider.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/RBAModelValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/UniqueNameValidationHelper.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/AbstractContentOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/AbstractContentValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ActiveContentsValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ActiveStateValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/AllocatableSetValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/AllocatedContentValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/AndOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/AreaSetValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/AreaValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ComparisonAndOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/CompositeAreaValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ConstraintValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ContentSetValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ContentStateValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ContentValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ContentValueValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/DisplayValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/DisplayingContentValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/EqualToOperatorValidatior.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ExistsOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/FixedPositionLayoutValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ForAllOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/GetAllocatablesValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/GetContentsListValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/GetPropertyValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/GreaterThanOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/HasComeEarlierThanValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/HasComeLaterThanValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/HideLowerPriorityValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/HorizontalLayoutValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IfStatementValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ImpliesOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IntegerPropertyValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsActiveValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsAllocatedToValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsAttenuatedValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsCanceledValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedDisplayValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedOutputValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsDisappearedValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsDisplayedOnValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsEqualToOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsGreaterThanEqualOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsGreaterThanOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsHiddenValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsLowerThanEqualOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsLowerThanOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsMutedValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsOnValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsOutputtedOnValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsOutputtedValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsSoundingValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedSoundToValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedToValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedViewToValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsTypeOfValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/IsVisibleValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/LambdaExpressionValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/LetStatementValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/LowerThanOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/MaxOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/MinOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/MuchGreaterThanOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/MuteLowerPriorityValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/NamedElementValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/NotOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ObjectCompareNotValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ObjectCompareValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/OffSceneValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/OffsetValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/OnSceneValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/OrOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/OutputtingSoundValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/PackageValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/PlusOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/PositionContainerValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ProjectValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/SceneValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/SelectOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/SetOfOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/SetPropertyValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/SizeOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/SizeValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/SoundContentSetValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/SoundContentValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/StateValueValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ThatOfOperatorValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ValidatorUtils.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/VerticalLayoutValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ViewContentSetValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ViewContentValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ZoneSetValidator.xtend create mode 100644 rba.tool.editor/src/rba/tool/editor/validation/validators/ZoneValidator.xtend create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/formatting2/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/generator/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/generator/java/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/generator/json/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/generator/rtmodel/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/generator/rule/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/generator/z3/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/linking/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/model/manager/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/naming/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/resource/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/scoping/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/scoping/internal/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/util/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/validation/.gitignore create mode 100644 rba.tool.editor/xtend-gen/rba/tool/editor/validation/validators/.gitignore create mode 100644 rba.tool.lib.groovy/.classpath create mode 100644 rba.tool.lib.groovy/.project create mode 100644 rba.tool.lib.groovy/.settings/org.eclipse.jdt.core.prefs create mode 100644 rba.tool.lib.groovy/META-INF/MANIFEST.MF create mode 100644 rba.tool.lib.groovy/build.properties create mode 100644 rba.tool.lib.groovy/lib/groovy-all-2.4.12-indy.jar create mode 100644 rba.tool.lib.groovy/plugin.properties create mode 100644 rba.tool.lib.json/.classpath create mode 100644 rba.tool.lib.json/.project create mode 100644 rba.tool.lib.json/.settings/org.eclipse.jdt.core.prefs create mode 100644 rba.tool.lib.json/META-INF/MANIFEST.MF create mode 100644 rba.tool.lib.json/build.properties create mode 100644 rba.tool.lib.json/lib/java-json.jar create mode 100644 rba.tool.lib.json/plugin.properties 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 @@ + + + + + + + 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 @@ + + + rba.model.core.edit + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ActivateContent.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ActivateContentStateOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ActiveContents.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ActiveState.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/AllocatedContent.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/AndOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ArbitrationPolicyExpression.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ComparisonAnd.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ComplexExpression.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Constraint.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ContentValue.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/DeactivateContent.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/DeactivateContentStateOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Defeats.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Displayed.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/EqualToOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Event.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/EventProcessing.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ExclusiveOrOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ExistsOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/FindStateMachine.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ForAllOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/GetAllocatables.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/GetContentsList.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/GetProperty.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/GetState.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/GreaterThanOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Handler.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/HasBeenDisplayed.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/HasComeEarlierThan.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/HasComeLaterThan.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IfActionOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IfStatement.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ImpliesOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IntegerProperty.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IntegerValue.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsActive.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsAllocatedTo.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsCanceled.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsChanged.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsDefeatedBy.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsDisappeared.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsEqualToOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsGreaterThanEqualOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsGreaterThanOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsLowerThanEqualOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsLowerThanOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsOn.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsRunningOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsStateOf.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsTranslatedTo.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/IsTypeOf.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/LambdaExpression.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/LetStatement.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/LoserTypeExpression.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/LowerThanOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/MaxOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/MaxValue.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/MinOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/MinValue.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/MuchGreaterThanOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/NoneValue.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/NotOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/NullExpression.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ObjectCompare.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ObjectCompareNot.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ObjectReference.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/OffScene.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/OnScene.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/OpaqueAction.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/OrOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Package.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/PlusOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/PostConstraint.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/PreviousModifier.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Project.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Rule.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Scene.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/SelectOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/SetOfOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/SetProperty.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/SetState.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/SizeOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/StandardValue.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/State.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/StateMachine.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/StateValue.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Stereotype.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Tag.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/ThatOfOperator.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Transition.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Undisplayed.gif 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 Binary files /dev/null and b/rba.model.core.edit/icons/full/obj16/Variable.gif 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 @@ + + + + + + + + + + + + + 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. + * + * @generated + */ +public class AbstractAllocatableItemProvider extends RuleObjectItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AbstractAllocatableItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addContentsPropertyDescriptor(object); + addAllocatableGroupPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Contents feature. + * + * @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. + * + * @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)); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class AbstractConstraintItemProvider extends PackagableElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AbstractConstraintItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION); + } + return childrenFeatures; + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class AbstractContentItemProvider extends RuleObjectItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AbstractContentItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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. + * + * @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. + * + * @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)); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class AbstractPropertyItemProvider extends RuleObjectItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AbstractPropertyItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addOwnerPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Owner feature. + * + * @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)); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class AbstractSceneItemProvider extends RuleObjectItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AbstractSceneItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ActionOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ActionOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ActiveContentsItemProvider extends AllocatableOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ActiveContentsItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ActiveContents.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ActiveContents")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ActiveStateItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ActiveStateItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ActiveState.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ActiveState")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class AllocatableItemProvider extends AbstractAllocatableItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AllocatableItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addArbitrationPolicyPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Arbitration Policy feature. + * + * @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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY); + } + return childrenFeatures; + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class AllocatableOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AllocatableOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class AllocatableSetItemProvider extends AbstractAllocatableItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AllocatableSetItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addTargetPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Target feature. + * + * @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)); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class AllocatedContentItemProvider extends AllocatableOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AllocatedContentItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns AllocatedContent.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AllocatedContent")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class AndOperatorItemProvider extends LogicalOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AndOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns AndOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AndOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ArbitrationPolicyExpressionItemProvider extends EnumExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ArbitrationPolicyExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addValuePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Value feature. + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ArbitrationPolicyExpression")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class ArithmeticOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ArithmeticOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ComparisonAndItemProvider extends ComparisonOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ComparisonAndItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ComparisonAnd.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ComparisonAnd")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class ComparisonOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ComparisonOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class ComplexExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ComplexExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ComplexExpression")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ConstraintItemProvider extends AbstractConstraintItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ConstraintItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addRuntimePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Runtime feature. + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Constraint")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ContentItemProvider extends AbstractContentItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ContentItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addLoserTypePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Loser Type feature. + * + * @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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.CONTENT__STATES); + } + return childrenFeatures; + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class ContentOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ContentOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ContentSetItemProvider extends AbstractContentItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ContentSetItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addTargetPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Target feature. + * + * @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)); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ContentStateItemProvider extends RuleObjectItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ContentStateItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.CONTENT_STATE__VALUE); + } + return childrenFeatures; + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ContentStateOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ContentStateOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ContentValueItemProvider extends AllocatableOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ContentValueItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ContentValue.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ContentValue")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class EnumExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public EnumExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class EqualToOperatorItemProvider extends ComparisonOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public EqualToOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns EqualToOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/EqualToOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ExistsOperatorItemProvider extends LambdaContextItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ExistsOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ExistsOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ExistsOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}. + * + * @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. + * + * @generated + */ +public class ExpressionItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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. + * + * @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. + * + * @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. + * + * @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)); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * + * @generated + */ +public class ForAllOperatorItemProvider extends LambdaContextItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ForAllOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ForAllOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ForAllOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}. + * + * @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. + * @generated + */ +public class GetAllocatablesItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public GetAllocatablesItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns GetAllocatables.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/GetAllocatables")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class GetContentsListItemProvider extends AllocatableOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public GetContentsListItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns GetContentsList.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/GetContentsList")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class GetPropertyItemProvider extends PropertyOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public GetPropertyItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns GetProperty.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/GetProperty")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class GetStateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public GetStateItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns GetState.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/GetState")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @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. + * + * @generated + */ +public class GreaterThanOperatorItemProvider extends ComparisonOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public GreaterThanOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns GreaterThanOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/GreaterThanOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class HasBeenDisplayedItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public HasBeenDisplayedItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns HasBeenDisplayed.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/HasBeenDisplayed")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class HasComeEarlierThanItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public HasComeEarlierThanItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns HasComeEarlierThan.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/HasComeEarlierThan")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class HasComeLaterThanItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public HasComeLaterThanItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns HasComeLaterThan.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/HasComeLaterThan")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class IfActionOperatorItemProvider extends ActionOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IfActionOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IfActionOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IfActionOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IfStatementItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IfStatementItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection 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; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IfStatement")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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}. + * + * @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. + * @generated + */ +public class ImpliesOperatorItemProvider extends LogicalOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ImpliesOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ImpliesOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ImpliesOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class IntegerPropertyItemProvider extends AbstractPropertyItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IntegerPropertyItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IntegerProperty")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IntegerValueItemProvider extends ValueExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IntegerValueItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addValuePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Value feature. + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IntegerValue")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsActiveItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsActiveItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsActive.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsActive")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsAllocatedToItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsAllocatedToItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsAllocatedTo.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsAllocatedTo")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsCanceledItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsCanceledItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsCanceled.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsCanceled")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsChangedItemProvider extends AllocatableOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsChangedItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsChanged.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsChanged")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsDisappearedItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsDisappearedItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsDisappeared.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsDisappeared")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class IsEqualToOperatorItemProvider extends LogicalOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsEqualToOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsEqualToOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsEqualToOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsGreaterThanEqualOperatorItemProvider extends LogicalOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsGreaterThanEqualOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsGreaterThanEqualOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsGreaterThanEqualOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsGreaterThanOperatorItemProvider extends LogicalOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsGreaterThanOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsGreaterThanOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsGreaterThanOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsLowerThanEqualOperatorItemProvider extends LogicalOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsLowerThanEqualOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsLowerThanEqualOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsLowerThanEqualOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsLowerThanOperatorItemProvider extends LogicalOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsLowerThanOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsLowerThanOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsLowerThanOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsOnItemProvider extends SceneOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsOnItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsOn.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsOn")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsTranslatedToItemProvider extends AllocatableOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsTranslatedToItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsTranslatedTo.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsTranslatedTo")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsTypeOfItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsTypeOfItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addTagNamePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Tag Name feature. + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsTypeOf")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class LambdaContextItemProvider extends SetOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public LambdaContextItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.LAMBDA_CONTEXT__LAMBDA); + } + return childrenFeatures; + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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}. + * + * @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. + * @generated + */ +public class LambdaExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public LambdaExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection 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; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LambdaExpression")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class LetStatementItemProvider extends ModelElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public LetStatementItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addVariablePropertyDescriptor(object); + addBodyPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Variable feature. + * + * @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. + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LetStatement")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class LogicalOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public LogicalOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class LoserTypeExpressionItemProvider extends EnumExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public LoserTypeExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addValuePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Value feature. + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LoserTypeExpression")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class LowerThanOperatorItemProvider extends ComparisonOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public LowerThanOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns LowerThanOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/LowerThanOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class MaxOperatorItemProvider extends LambdaContextItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public MaxOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns MaxOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/MaxOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}. + * + * @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. + * + * @generated + */ +public class MaxValueItemProvider extends ValueExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public MaxValueItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns MaxValue.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/MaxValue")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class MinOperatorItemProvider extends LambdaContextItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public MinOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns MinOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/MinOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}. + * + * @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. + * + * @generated + */ +public class MinValueItemProvider extends ValueExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public MinValueItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns MinValue.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/MinValue")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ModelElementItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ModelElementItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addDescriptionPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Description feature. + * + * @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)); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * + * @generated + */ +public class MuchGreaterThanOperatorItemProvider extends ComparisonOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public MuchGreaterThanOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns MuchGreaterThanOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/MuchGreaterThanOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class NamedElementItemProvider extends ModelElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public NamedElementItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addNamePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Name feature. + * + * @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)); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class NoneValueItemProvider extends ValueExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public NoneValueItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns NoneValue.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NoneValue")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class NotOperatorItemProvider extends LogicalOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public NotOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns NotOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NotOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * + * @generated + */ +public class NullExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public NullExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns NullExpression.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NullExpression")); + } + + /** + * + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * + * @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}. + * + * + * @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. + * + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ObjectCompareItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ObjectCompareItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ObjectCompare.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ObjectCompare")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class ObjectCompareNotItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ObjectCompareNotItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ObjectCompareNot.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ObjectCompareNot")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class ObjectReferenceItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ObjectReferenceItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addRefObjectPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Ref Object feature. + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ObjectReference")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class OffSceneItemProvider extends SceneOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public OffSceneItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns OffScene.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/OffScene")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class OnSceneItemProvider extends SceneOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public OnSceneItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns OnScene.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/OnScene")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class OperatorItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public OperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.OPERATOR__OPERAND); + } + return childrenFeatures; + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class OrOperatorItemProvider extends LogicalOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public OrOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns OrOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/OrOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class PackagableElementItemProvider extends NamedElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public PackagableElementItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class PackageItemProvider extends PackagableElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public PackageItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.PACKAGE__PACKAGABLEELEMENT); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Package")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class PlusOperatorItemProvider extends ArithmeticOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public PlusOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns PlusOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PlusOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class PreviousModifierItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public PreviousModifierItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.PREVIOUS_MODIFIER__OBJ_REFERENCE); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PreviousModifier")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ProjectItemProvider extends PackageItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ProjectItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addVersionPropertyDescriptor(object); + addDummyNamePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Version feature. + * + * + * @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. + * + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Project")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class PropertyOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public PropertyOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class RBACoreItemProviderAdapterFactory extends RBACoreAdapterFactory + implements ComposeableAdapterFactory, IChangeNotifier, IDisposable { + /** + * This keeps track of the root adapter factory that delegates to this adapter factory. + * + * @generated + */ + protected ComposedAdapterFactory parentAdapterFactory; + + /** + * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. + * + * @generated + */ + protected IChangeNotifier changeNotifier = new ChangeNotifier(); + + /** + * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. + * + * @generated + */ + protected Collection supportedTypes = new ArrayList(); + + /** + * This constructs an instance. + * + * @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. + * + * @generated + */ + protected ProjectItemProvider projectItemProvider; + + /** + * This creates an adapter for a {@link rba.core.Project}. + * + * @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. + * + * @generated + */ + protected PackageItemProvider packageItemProvider; + + /** + * This creates an adapter for a {@link rba.core.Package}. + * + * @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. + * + * @generated + */ + protected StereotypeItemProvider stereotypeItemProvider; + + /** + * This creates an adapter for a {@link rba.core.Stereotype}. + * + * @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. + * + * + * @generated + */ + protected TagItemProvider tagItemProvider; + + /** + * This creates an adapter for a {@link rba.core.Tag}. + * + * + * @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. + * + * @generated + */ + protected SceneItemProvider sceneItemProvider; + + /** + * This creates an adapter for a {@link rba.core.Scene}. + * + * @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. + * + * @generated + */ + protected IntegerPropertyItemProvider integerPropertyItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IntegerProperty}. + * + * @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. + * + * @generated + */ + protected ConstraintItemProvider constraintItemProvider; + + /** + * This creates an adapter for a {@link rba.core.Constraint}. + * + * @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. + * + * @generated + */ + protected LetStatementItemProvider letStatementItemProvider; + + /** + * This creates an adapter for a {@link rba.core.LetStatement}. + * + * @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. + * + * + * @generated + */ + protected ComplexExpressionItemProvider complexExpressionItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ComplexExpression}. + * + * @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. + * + * @generated + */ + protected IsTypeOfItemProvider isTypeOfItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IsTypeOf}. + * + * @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. + * + * @generated + */ + protected ObjectReferenceItemProvider objectReferenceItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ObjectReference}. + * + * @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. + * + * + * @generated + */ + protected PreviousModifierItemProvider previousModifierItemProvider; + + /** + * This creates an adapter for a {@link rba.core.PreviousModifier}. + * + * @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. + * + * + * @generated + */ + protected GreaterThanOperatorItemProvider greaterThanOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.GreaterThanOperator}. + * + * @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. + * + * @generated + */ + protected MuchGreaterThanOperatorItemProvider muchGreaterThanOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.MuchGreaterThanOperator}. + * + * @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. + * + * + * @generated + */ + protected LowerThanOperatorItemProvider lowerThanOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.LowerThanOperator}. + * + * @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. + * + * @generated + */ + protected EqualToOperatorItemProvider equalToOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.EqualToOperator}. + * + * @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. + * + * @generated + */ + protected ComparisonAndItemProvider comparisonAndItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ComparisonAnd}. + * + * @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. + * + * @generated + */ + protected AndOperatorItemProvider andOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.AndOperator}. + * + * @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. + * + * @generated + */ + protected OrOperatorItemProvider orOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.OrOperator}. + * + * @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. + * + * @generated + */ + protected NotOperatorItemProvider notOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.NotOperator}. + * + * @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. + * + * + * @generated + */ + protected IsEqualToOperatorItemProvider isEqualToOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IsEqualToOperator}. + * + * @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. + * + * @generated + */ + protected IsGreaterThanOperatorItemProvider isGreaterThanOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IsGreaterThanOperator}. + * + * @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. + * + * + * @generated + */ + protected IsLowerThanOperatorItemProvider isLowerThanOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IsLowerThanOperator}. + * + * @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. + * @generated + */ + protected IsGreaterThanEqualOperatorItemProvider isGreaterThanEqualOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IsGreaterThanEqualOperator}. + * + * @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. + * + * @generated + */ + protected IsLowerThanEqualOperatorItemProvider isLowerThanEqualOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IsLowerThanEqualOperator}. + * + * @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. + * + * @generated + */ + protected PlusOperatorItemProvider plusOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.PlusOperator}. + * + * @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. + * + * @generated + */ + protected ImpliesOperatorItemProvider impliesOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ImpliesOperator}. + * + * @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. + * + * @generated + */ + protected IsActiveItemProvider isActiveItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IsActive}. + * + * @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. + * + * @generated + */ + protected GetAllocatablesItemProvider getAllocatablesItemProvider; + + /** + * This creates an adapter for a {@link rba.core.GetAllocatables}. + * + * @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. + * + * + * @generated + */ + protected HasBeenDisplayedItemProvider hasBeenDisplayedItemProvider; + + /** + * This creates an adapter for a {@link rba.core.HasBeenDisplayed}. + * + * @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. + * + * @generated + */ + protected ActiveStateItemProvider activeStateItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ActiveState}. + * + * @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. + * + * @generated + */ + protected ObjectCompareItemProvider objectCompareItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ObjectCompare}. + * + * @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. + * + * @generated + */ + protected ThatOfOperatorItemProvider thatOfOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ThatOfOperator}. + * + * @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. + * + * @generated + */ + protected MaxValueItemProvider maxValueItemProvider; + + /** + * This creates an adapter for a {@link rba.core.MaxValue}. + * + * @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. + * + * @generated + */ + protected MinValueItemProvider minValueItemProvider; + + /** + * This creates an adapter for a {@link rba.core.MinValue}. + * + * @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. + * + * @generated + */ + protected NoneValueItemProvider noneValueItemProvider; + + /** + * This creates an adapter for a {@link rba.core.NoneValue}. + * + * @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. + * + * @generated + */ + protected StandardValueItemProvider standardValueItemProvider; + + /** + * This creates an adapter for a {@link rba.core.StandardValue}. + * + * @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. + * + * @generated + */ + protected IntegerValueItemProvider integerValueItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IntegerValue}. + * + * @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. + * + * + * @generated + */ + protected LoserTypeExpressionItemProvider loserTypeExpressionItemProvider; + + /** + * This creates an adapter for a {@link rba.core.LoserTypeExpression}. + * + * @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. + * @generated + */ + protected ArbitrationPolicyExpressionItemProvider arbitrationPolicyExpressionItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ArbitrationPolicyExpression}. + * + * @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. + * + * @generated + */ + protected SizeOperatorItemProvider sizeOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.SizeOperator}. + * + * @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. + * + * @generated + */ + protected ExistsOperatorItemProvider existsOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ExistsOperator}. + * + * @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. + * + * @generated + */ + protected ForAllOperatorItemProvider forAllOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ForAllOperator}. + * + * @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. + * + * @generated + */ + protected MaxOperatorItemProvider maxOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.MaxOperator}. + * + * @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. + * + * @generated + */ + protected MinOperatorItemProvider minOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.MinOperator}. + * + * @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. + * + * @generated + */ + protected SelectOperatorItemProvider selectOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.SelectOperator}. + * + * @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. + * + * @generated + */ + protected SetOfOperatorItemProvider setOfOperatorItemProvider; + + /** + * This creates an adapter for a {@link rba.core.SetOfOperator}. + * + * @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. + * + * + * @generated + */ + protected LambdaExpressionItemProvider lambdaExpressionItemProvider; + + /** + * This creates an adapter for a {@link rba.core.LambdaExpression}. + * + * @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. + * + * @generated + */ + protected VariableItemProvider variableItemProvider; + + /** + * This creates an adapter for a {@link rba.core.Variable}. + * + * @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. + * + * @generated + */ + protected IfStatementItemProvider ifStatementItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IfStatement}. + * + * @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. + * + * @generated + */ + protected IsOnItemProvider isOnItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IsOn}. + * + * @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. + * + * + * @generated + */ + protected AllocatedContentItemProvider allocatedContentItemProvider; + + /** + * This creates an adapter for a {@link rba.core.AllocatedContent}. + * + * @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. + * + * @generated + */ + protected ContentValueItemProvider contentValueItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ContentValue}. + * + * @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. + * + * @generated + */ + protected GetContentsListItemProvider getContentsListItemProvider; + + /** + * This creates an adapter for a {@link rba.core.GetContentsList}. + * + * @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. + * + * @generated + */ + protected ActiveContentsItemProvider activeContentsItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ActiveContents}. + * + * @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. + * + * @generated + */ + protected GetPropertyItemProvider getPropertyItemProvider; + + /** + * This creates an adapter for a {@link rba.core.GetProperty}. + * + * @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. + * + * @generated + */ + protected StateValueItemProvider stateValueItemProvider; + + /** + * This creates an adapter for a {@link rba.core.StateValue}. + * + * @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. + * + * + * @generated + */ + protected HasComeLaterThanItemProvider hasComeLaterThanItemProvider; + + /** + * This creates an adapter for a {@link rba.core.HasComeLaterThan}. + * + * @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. + * + * + * @generated + */ + protected HasComeEarlierThanItemProvider hasComeEarlierThanItemProvider; + + /** + * This creates an adapter for a {@link rba.core.HasComeEarlierThan}. + * + * @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. + * + * + * @generated + */ + protected ObjectCompareNotItemProvider objectCompareNotItemProvider; + + /** + * This creates an adapter for a {@link rba.core.ObjectCompareNot}. + * + * @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. + * + * @generated + */ + protected IsAllocatedToItemProvider isAllocatedToItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IsAllocatedTo}. + * + * @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. + * + * @generated + */ + protected IsChangedItemProvider isChangedItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IsChanged}. + * + * @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. + * + * @generated + */ + protected IsTranslatedToItemProvider isTranslatedToItemProvider; + + /** + * This creates an adapter for a {@link rba.core.IsTranslatedTo}. + * + * @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. + * + * @generated + */ + protected GetStateItemProvider getStateItemProvider; + + /** + * This creates an adapter for a {@link rba.core.GetState}. + * + * @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. + * + * + * @generated + */ + protected NullExpressionItemProvider nullExpressionItemProvider; + + /** + * This creates an adapter for a {@link rba.core.NullExpression}. + * + * + * @generated + */ + @Override + public Adapter createNullExpressionAdapter() { + if (nullExpressionItemProvider == null) { + nullExpressionItemProvider = new NullExpressionItemProvider(this); + } + + return nullExpressionItemProvider; + } + + /** + * This returns the root adapter factory that contains this factory. + * + * @generated + */ + public ComposeableAdapterFactory getRootAdapterFactory() { + return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory(); + } + + /** + * This sets the composed adapter factory that contains this factory. + * + * @generated + */ + public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) { + this.parentAdapterFactory = parentAdapterFactory; + } + + /** + * + * @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. + * @generated + */ + @Override + public Adapter adapt(Notifier notifier, Object type) { + return super.adapt(notifier, this); + } + + /** + * + * @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. + * + * @generated + */ + public void addListener(INotifyChangedListener notifyChangedListener) { + changeNotifier.addListener(notifyChangedListener); + } + + /** + * This removes a listener. + * + * @generated + */ + public void removeListener(INotifyChangedListener notifyChangedListener) { + changeNotifier.removeListener(notifyChangedListener); + } + + /** + * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. + * @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. + * + * @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. + * + * @generated + */ +public final class RbaCoreEditPlugin extends EMFPlugin { + /** + * Keep track of the singleton. + * + * @generated + */ + public static final RbaCoreEditPlugin INSTANCE = new RbaCoreEditPlugin(); + + /** + * Keep track of the singleton. + * + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * + * @generated + */ + public RbaCoreEditPlugin() { + super(new ResourceLocator[] {}); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * + * @return the singleton instance. + * @generated + */ + @Override + public ResourceLocator getPluginResourceLocator() { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() { + return plugin; + } + + /** + * The actual implementation of the Eclipse Plugin. + * + * @generated + */ + public static class Implementation extends EclipsePlugin { + /** + * Creates an instance. + * + * @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. + * + * @generated + */ +public class RuleObjectItemProvider extends PackagableElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public RuleObjectItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.RULE_OBJECT__TAGS); + } + return childrenFeatures; + } + + /** + * + * + * @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); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class SceneItemProvider extends AbstractSceneItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SceneItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addGlobalPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Global feature. + * + * @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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.SCENE__PROPERTIES); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Scene")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class SceneOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SceneOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class SelectOperatorItemProvider extends LambdaContextItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SelectOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns SelectOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SelectOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}. + * + * @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. + * + * @generated + */ +public class SetExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SetExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class SetOfOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SetOfOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns SetOfOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SetOfOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class SetOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SetOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class SetPropertyItemProvider extends PropertyOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SetPropertyItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns SetProperty.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SetProperty")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class SizeOperatorItemProvider extends SetOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SizeOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns SizeOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SizeOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class StandardValueItemProvider extends ValueExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public StandardValueItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns StandardValue.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/StandardValue")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class StateItemProvider extends RuleObjectItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public StateItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns State.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/State")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class StateValueItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public StateValueItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns StateValue.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/StateValue")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class StereotypeItemProvider extends PackagableElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public StereotypeItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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. + * + * @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. + * + * @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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBACorePackage.Literals.STEREOTYPE__VARIABLES); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Stereotype")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * + * @generated + */ +public class TagItemProvider extends NamedElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public TagItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addValuesPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Values feature. + * + * + * @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. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Tag")); + } + + /** + * + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * + * @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}. + * + * + * @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. + * + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ThatOfOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ThatOfOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ThatOfOperator.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ThatOfOperator")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class ValueExpressionItemProvider extends ExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ValueExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class VariableItemProvider extends RuleObjectItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public VariableItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns Variable.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Variable")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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 @@ + + + + + + + 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 @@ + + + rba.model.core + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.sirius.nature.modelingproject + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + org.eclipse.xtext.ui.shared.xtextNature + + 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 @@ + + + + rbacore.ecore + rbacore.genmodel + rbaext.ecore + http://www.eclipse.org/emf/2002/Ecore + rbaext.genmodel + + + + + + + + + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + italic + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + bold + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + italic + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + italic + + + + + + + + + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + bold + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + labelSize + bold + + + labelSize + + + + + + + + + + bold + + + + + + + + + + + bold + + + + + + + + + + + bold + + + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + labelSize + bold + + + labelSize + + + + + + + + + + labelSize + bold + + + labelSize + + + + + + + + + + bold + + + + + + + + + + + bold + + + + + + + + + + + bold + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + italic + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + +
+ + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+
+ + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + +
+
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+
+ + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + + +
+ + + + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+ + + + + +
+ + + +
+
+ + + + +
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+
+ + + + +
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + 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 @@ + + + rbacore.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + 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; + +/** + * + * A representation of the model object 'Abstract Allocatable'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.AbstractAllocatable#getContents Contents}
  • + *
  • {@link rba.core.AbstractAllocatable#getAllocatableGroup Allocatable Group}
  • + *
+ * + * @see rba.core.RBACorePackage#getAbstractAllocatable() + * @model abstract="true" + * @generated + */ +public interface AbstractAllocatable extends RuleObject { + /** + * Returns the value of the 'Contents' reference list. + * The list contents are of type {@link rba.core.AbstractContent}. + * It is bidirectional and its opposite is '{@link rba.core.AbstractContent#getAllocatable Allocatable}'. + * + * + * + * + * + * @return the value of the 'Contents' reference list. + * @see rba.core.RBACorePackage#getAbstractAllocatable_Contents() + * @see rba.core.AbstractContent#getAllocatable + * @model opposite="allocatable" + * @generated + */ + EList getContents(); + + /** + * Returns the value of the 'Allocatable Group' reference list. + * The list contents are of type {@link rba.core.AllocatableSet}. + * It is bidirectional and its opposite is '{@link rba.core.AllocatableSet#getTarget Target}'. + * + * + * + * + * + * @return the value of the 'Allocatable Group' reference list. + * @see rba.core.RBACorePackage#getAbstractAllocatable_AllocatableGroup() + * @see rba.core.AllocatableSet#getTarget + * @model opposite="target" + * @generated + */ + EList getAllocatableGroup(); + + /** + * + * + * + * + * + * @model kind="operation" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set<Content> contents = new java.util.LinkedHashSet<Content>();\r\ngetContents().forEach(content -> contents.addAll(content.collectLeafContents()));\r\ngetAllocatableGroup().forEach(allocatableSet -> contents.addAll(allocatableSet.getContentsList()));\r\nreturn new org.eclipse.emf.common.util.BasicEList<Content>(contents);'" + * @generated + */ + EList getContentsList(); + + /** + * + * + * + * + * + * @model ordered="false" + * @generated + */ + EList 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; + +/** + * + * A representation of the model object 'Abstract Constraint'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.AbstractConstraint#getExpression Expression}
  • + *
+ * + * @see rba.core.RBACorePackage#getAbstractConstraint() + * @model abstract="true" + * @generated + */ +public interface AbstractConstraint extends PackagableElement { + /** + * Returns the value of the 'Expression' containment reference. + * + * + * + * + * + * @return the value of the 'Expression' 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 Expression}' containment reference. + * + * + * @param value the new value of the 'Expression' 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; + +/** + * + * A representation of the model object 'Abstract Content'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.AbstractContent#getContentGroup Content Group}
  • + *
  • {@link rba.core.AbstractContent#getAllocatable Allocatable}
  • + *
+ * + * @see rba.core.RBACorePackage#getAbstractContent() + * @model abstract="true" + * @generated + */ +public interface AbstractContent extends RuleObject { + /** + * Returns the value of the 'Content Group' reference list. + * The list contents are of type {@link rba.core.ContentSet}. + * It is bidirectional and its opposite is '{@link rba.core.ContentSet#getTarget Target}'. + * + * + * + * + * + * @return the value of the 'Content Group' reference list. + * @see rba.core.RBACorePackage#getAbstractContent_ContentGroup() + * @see rba.core.ContentSet#getTarget + * @model opposite="target" + * @generated + */ + EList getContentGroup(); + + /** + * Returns the value of the 'Allocatable' reference list. + * The list contents are of type {@link rba.core.AbstractAllocatable}. + * It is bidirectional and its opposite is '{@link rba.core.AbstractAllocatable#getContents Contents}'. + * + *

+ * If the meaning of the 'Allocatable' reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Allocatable' reference list. + * @see rba.core.RBACorePackage#getAbstractContent_Allocatable() + * @see rba.core.AbstractAllocatable#getContents + * @model opposite="contents" + * @generated + */ + EList getAllocatable(); + + /** + * + * + * + * + * + * @model kind="operation" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set<Allocatable> allocatables = new java.util.LinkedHashSet<Allocatable>();\r\ngetAllocatable().forEach(allocatable -> allocatables.addAll(allocatable.collectLeafAllocatable()));\r\ngetContentGroup().forEach(contentSet -> allocatables.addAll(contentSet.getAllocatableList()));\r\nreturn new org.eclipse.emf.common.util.BasicEList<Allocatable>(allocatables);'" + * @generated + */ + EList getAllocatableList(); + + /** + * + * + * + * + * + * @model ordered="false" + * @generated + */ + EList 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; + +/** + * + * A representation of the model object 'Abstract Property'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.AbstractProperty#getOwner Owner}
  • + *
+ * + * @see rba.core.RBACorePackage#getAbstractProperty() + * @model abstract="true" + * @generated + */ +public interface AbstractProperty extends RuleObject { + /** + * Returns the value of the 'Owner' container reference. + * It is bidirectional and its opposite is '{@link rba.core.Scene#getProperties Properties}'. + * + * + * + * + * + * @return the value of the 'Owner' 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 Owner}' container reference. + * + * + * @param value the new value of the 'Owner' container reference. + * @see #getOwner() + * @generated + */ + void setOwner(Scene value); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Abstract Scene'. + * + * + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'Action Operator'. + * + * + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'Active Contents'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getActiveContents() + * @model + * @generated + */ +public interface ActiveContents extends AllocatableOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".activeContents()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='EList<rba.core.Expression> expressions = getOperand();\r\nif (!expressions.isEmpty() && 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; + +/** + * + * A representation of the model object 'Active State'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getActiveState() + * @model + * @generated + */ +public interface ActiveState extends ContentOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".activeState()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Allocatable'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.Allocatable#getArbitrationPolicy Arbitration Policy}
  • + *
  • {@link rba.core.Allocatable#getVisibility Visibility}
  • + *
+ * + * @see rba.core.RBACorePackage#getAllocatable() + * @model abstract="true" + * @generated + */ +public interface Allocatable extends AbstractAllocatable { + /** + * Returns the value of the 'Arbitration Policy' attribute. + * The literals are from the enumeration {@link rba.core.ArbitrationPolicy}. + * + * + * + * + * + * @return the value of the 'Arbitration Policy' 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 Arbitration Policy}' attribute. + * + * + * @param value the new value of the 'Arbitration Policy' attribute. + * @see rba.core.ArbitrationPolicy + * @see #getArbitrationPolicy() + * @generated + */ + void setArbitrationPolicy(ArbitrationPolicy value); + + /** + * Returns the value of the 'Visibility' containment reference. + * + * + * + * + * + * @return the value of the 'Visibility' 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 Visibility}' containment reference. + * + * + * @param value the new value of the 'Visibility' containment reference. + * @see #getVisibility() + * @generated + */ + void setVisibility(Expression value); + + /** + * + * + * @model ordered="false" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set<Allocatable> allocatables = new java.util.HashSet<Allocatable>();\r\nallocatables.add(this);\r\nreturn new org.eclipse.emf.common.util.BasicEList<Allocatable>(allocatables);'" + * @generated + */ + EList 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; + +/** + * + * A representation of the model object 'Allocatable Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getAllocatableOperator() + * @model abstract="true" + * @generated + */ +public interface AllocatableOperator extends Operator { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Allocatable Set'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.AllocatableSet#getTarget Target}
  • + *
+ * + * @see rba.core.RBACorePackage#getAllocatableSet() + * @model abstract="true" + * @generated + */ +public interface AllocatableSet extends AbstractAllocatable { + /** + * Returns the value of the 'Target' reference list. + * The list contents are of type {@link rba.core.AbstractAllocatable}. + * It is bidirectional and its opposite is '{@link rba.core.AbstractAllocatable#getAllocatableGroup Allocatable Group}'. + * + * + * + * + * + * @return the value of the 'Target' reference list. + * @see rba.core.RBACorePackage#getAllocatableSet_Target() + * @see rba.core.AbstractAllocatable#getAllocatableGroup + * @model opposite="allocatableGroup" + * @generated + */ + EList getTarget(); + + /** + * + * + * @model ordered="false" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set<Allocatable> allocatables = new java.util.LinkedHashSet<Allocatable>();\r\ngetTarget().forEach(allocatable -> allocatables.addAll(allocatable.collectLeafAllocatable()));\r\nreturn new org.eclipse.emf.common.util.BasicEList<Allocatable>(allocatables);'" + * @generated + */ + EList 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; + +/** + * + * A representation of the model object 'Allocated Content'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getAllocatedContent() + * @model + * @generated + */ +public interface AllocatedContent extends AllocatableOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".allocatedContent()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='EList<rba.core.Expression> expressions = getOperand();\r\nif (!expressions.isEmpty() && 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; + +/** + * + * A representation of the model object 'And Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getAndOperator() + * @model + * @generated + */ +public interface AndOperator extends LogicalOperator { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the literals of the enumeration 'Arbitration Policy', + * and utility methods for working with them. + * + * + * + * + * @see rba.core.RBACorePackage#getArbitrationPolicy() + * @model + * @generated + */ +public enum ArbitrationPolicy implements Enumerator { + /** + * The 'DEFAULT' literal object. + * + * + * @see #DEFAULT_VALUE + * @generated + * @ordered + */ + DEFAULT(0, "DEFAULT", "DEFAULT"), + + /** + * The 'FIRST COME FIRST' literal object. + * + * + * @see #FIRST_COME_FIRST_VALUE + * @generated + * @ordered + */ + FIRST_COME_FIRST(4, "FIRST_COME_FIRST", "FIRST_COME_FIRST"), + + /** + * The 'LAST COME FIRST' literal object. + * + * + * @see #LAST_COME_FIRST_VALUE + * @generated + * @ordered + */ + LAST_COME_FIRST(1, "LAST_COME_FIRST", "LAST_COME_FIRST"), + + /** + * The 'PRIORITY FIRST COME FIRST' literal object. + * + * + * @see #PRIORITY_FIRST_COME_FIRST_VALUE + * @generated + * @ordered + */ + PRIORITY_FIRST_COME_FIRST(5, "PRIORITY_FIRST_COME_FIRST", "PRIORITY_FIRST_COME_FIRST"), + + /** + * The 'PRIORITY LAST COME FIRST' literal object. + * + * + * @see #PRIORITY_LAST_COME_FIRST_VALUE + * @generated + * @ordered + */ + PRIORITY_LAST_COME_FIRST(6, "PRIORITY_LAST_COME_FIRST", "PRIORITY_LAST_COME_FIRST"); + + /** + * The 'DEFAULT' literal value. + * + * + * + * + * + * @see #DEFAULT + * @model + * @generated + * @ordered + */ + public static final int DEFAULT_VALUE = 0; + + /** + * The 'FIRST COME FIRST' literal value. + * + * + * + * + * + * @see #FIRST_COME_FIRST + * @model + * @generated + * @ordered + */ + public static final int FIRST_COME_FIRST_VALUE = 4; + + /** + * The 'LAST COME FIRST' literal value. + * + * + * + * + * + * @see #LAST_COME_FIRST + * @model + * @generated + * @ordered + */ + public static final int LAST_COME_FIRST_VALUE = 1; + + /** + * The 'PRIORITY FIRST COME FIRST' literal value. + * + * + * + * + * + * @see #PRIORITY_FIRST_COME_FIRST + * @model + * @generated + * @ordered + */ + public static final int PRIORITY_FIRST_COME_FIRST_VALUE = 5; + + /** + * The 'PRIORITY LAST COME FIRST' literal value. + * + * + * + * + * + * @see #PRIORITY_LAST_COME_FIRST + * @model + * @generated + * @ordered + */ + public static final int PRIORITY_LAST_COME_FIRST_VALUE = 6; + + /** + * An array of all the 'Arbitration Policy' enumerators. + * + * + * @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 'Arbitration Policy' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Arbitration Policy' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @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 'Arbitration Policy' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @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 'Arbitration Policy' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @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; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ArbitrationPolicy(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @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; + +/** + * + * A representation of the model object 'Arbitration Policy Expression'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.ArbitrationPolicyExpression#getValue Value}
  • + *
+ * + * @see rba.core.RBACorePackage#getArbitrationPolicyExpression() + * @model + * @generated + */ +public interface ArbitrationPolicyExpression extends EnumExpression { + /** + * Returns the value of the 'Value' attribute. + * The literals are from the enumeration {@link rba.core.ArbitrationPolicy}. + * + * + * + * + * + * @return the value of the 'Value' 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 Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see rba.core.ArbitrationPolicy + * @see #getValue() + * @generated + */ + void setValue(ArbitrationPolicy value); + + /** + * + * + * + * @Override + * + * @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(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Arithmetic Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getArithmeticOperator() + * @model abstract="true" + * @generated + */ +public interface ArithmeticOperator extends Operator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.VALUE;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(\"(\");\r\nfor (int i = 0; i < 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; + +/** + * + * A representation of the model object 'Comparison And'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getComparisonAnd() + * @model + * @generated + */ +public interface ComparisonAnd extends ComparisonOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"and\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(\"(\");\r\nfor (int i = 0; i < 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; + +/** + * + * A representation of the model object 'Comparison Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getComparisonOperator() + * @model abstract="true" + * @generated + */ +public interface ComparisonOperator extends Operator { + /** + * + * + * + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.VALUE;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Complex Expression'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.ComplexExpression#getOtherExpression Other Expression}
  • + *
+ * + * @see rba.core.RBACorePackage#getComplexExpression() + * @model + * @generated + */ +public interface ComplexExpression extends Expression, SugarExpressionBase { + /** + * Returns the value of the 'Other Expression' containment reference. + * + * + * + * + * + * @return the value of the 'Other Expression' 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 Other Expression}' containment reference. + * + * + * @param value the new value of the 'Other Expression' containment reference. + * @see #getOtherExpression() + * @generated + */ + void setOtherExpression(Expression value); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return otherExpression != null ? otherExpression.getExpressionText() : \"[Invalid_Expression]\";'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @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(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Constraint'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.Constraint#isRuntime Runtime}
  • + *
+ * + * @see rba.core.RBACorePackage#getConstraint() + * @model + * @generated + */ +public interface Constraint extends AbstractConstraint { + /** + * Returns the value of the 'Runtime' attribute. + * The default value is "true". + * + * + * + * + * + * @return the value of the 'Runtime' 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 Runtime}' attribute. + * + * + * @param value the new value of the 'Runtime' attribute. + * @see #isSetRuntime() + * @see #unsetRuntime() + * @see #isRuntime() + * @generated + */ + void setRuntime(boolean value); + + /** + * Unsets the value of the '{@link rba.core.Constraint#isRuntime Runtime}' attribute. + * + * + * @see #isSetRuntime() + * @see #isRuntime() + * @see #setRuntime(boolean) + * @generated + */ + void unsetRuntime(); + + /** + * Returns whether the value of the '{@link rba.core.Constraint#isRuntime Runtime}' attribute is set. + * + * + * @return whether the value of the 'Runtime' 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; + +/** + * + * A representation of the model object 'Content'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.Content#getLoserType Loser Type}
  • + *
  • {@link rba.core.Content#getStates States}
  • + *
+ * + * @see rba.core.RBACorePackage#getContent() + * @model abstract="true" + * @generated + */ +public interface Content extends AbstractContent { + /** + * Returns the value of the 'Loser Type' attribute. + * The default value is "NEVER_GIVEUP". + * The literals are from the enumeration {@link rba.core.LoserType}. + * + *

+ * If the meaning of the 'Loser Type' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Loser Type' 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 Loser Type}' attribute. + * + * + * @param value the new value of the 'Loser Type' attribute. + * @see rba.core.LoserType + * @see #getLoserType() + * @generated + */ + void setLoserType(LoserType value); + + /** + * Returns the value of the 'States' 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 Owner}'. + * + * + * + * + * + * @return the value of the 'States' containment reference list. + * @see rba.core.RBACorePackage#getContent_States() + * @see rba.core.ContentState#getOwner + * @model opposite="owner" containment="true" + * @generated + */ + EList getStates(); + + /** + * + * + * @model ordered="false" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set<Content> contents = new java.util.HashSet<Content>();\r\ncontents.add(this);\r\nreturn new org.eclipse.emf.common.util.BasicEList<Content>(contents);'" + * @generated + */ + EList 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; + +/** + * + * A representation of the model object 'Content Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getContentOperator() + * @model abstract="true" + * @generated + */ +public interface ContentOperator extends Operator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Content Set'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.ContentSet#getTarget Target}
  • + *
+ * + * @see rba.core.RBACorePackage#getContentSet() + * @model abstract="true" + * @generated + */ +public interface ContentSet extends AbstractContent { + /** + * Returns the value of the 'Target' reference list. + * The list contents are of type {@link rba.core.AbstractContent}. + * It is bidirectional and its opposite is '{@link rba.core.AbstractContent#getContentGroup Content Group}'. + * + *

+ * If the meaning of the 'Target' reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Target' reference list. + * @see rba.core.RBACorePackage#getContentSet_Target() + * @see rba.core.AbstractContent#getContentGroup + * @model opposite="contentGroup" + * @generated + */ + EList getTarget(); + + /** + * + * + * @model ordered="false" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set<Content> contents = new java.util.LinkedHashSet<Content>();\r\ngetTarget().forEach(content -> contents.addAll(content.collectLeafContents()));\r\nreturn new org.eclipse.emf.common.util.BasicEList<Content>(contents);'" + * @generated + */ + EList 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; + +/** + * + * A representation of the model object 'Content State'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.ContentState#getValue Value}
  • + *
  • {@link rba.core.ContentState#getOwner Owner}
  • + *
+ * + * @see rba.core.RBACorePackage#getContentState() + * @model abstract="true" + * @generated + */ +public interface ContentState extends RuleObject { + /** + * Returns the value of the 'Value' containment reference. + * + * + * + * + * + * @return the value of the 'Value' 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 Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(Expression value); + + /** + * Returns the value of the 'Owner' container reference. + * It is bidirectional and its opposite is '{@link rba.core.Content#getStates States}'. + * + * + * + * + * + * @return the value of the 'Owner' 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 Owner}' container reference. + * + * + * @param value the new value of the 'Owner' 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; + +/** + * + * A representation of the model object 'Content State Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getContentStateOperator() + * @model abstract="true" + * @generated + */ +public interface ContentStateOperator extends Operator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Content Value'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getContentValue() + * @model + * @generated + */ +public interface ContentValue extends AllocatableOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".contentValue()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Enum Expression'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getEnumExpression() + * @model abstract="true" + * @generated + */ +public interface EnumExpression extends Expression { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.ENUM;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * + * + * + * @model kind="operation" required="true" + * @generated + */ + Enumerator getExpressionValue(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Equal To Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getEqualToOperator() + * @model + * @generated + */ +public interface EqualToOperator extends ComparisonOperator { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Exists Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getExistsOperator() + * @model + * @generated + */ +public interface ExistsOperator extends LambdaContext { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nrba.core.LambdaExpression lambda = getLambda();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\" \");\r\nexpressionText.append(expressions.size() > 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(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"Exists\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Expression'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.Expression#getType Type}
  • + *
  • {@link rba.core.Expression#getExpression Expression}
  • + *
  • {@link rba.core.Expression#getLetStatements Let Statements}
  • + *
+ * + * @see rba.core.RBACorePackage#getExpression() + * @model abstract="true" + * @generated + */ +public interface Expression extends EObject { + /** + * Returns the value of the 'Type' attribute. + * The literals are from the enumeration {@link rba.core.ExpressionType}. + * + * + * + * + * + * @return the value of the 'Type' 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 Type}' attribute is set. + * + * + * @return whether the value of the 'Type' attribute is set. + * @see #getType() + * @generated + */ + boolean isSetType(); + + /** + * Returns the value of the 'Expression' attribute. + * + * + * + * + * + * @return the value of the 'Expression' 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 Expression}' attribute. + * + * + * @param value the new value of the 'Expression' attribute. + * @see #isSetExpression() + * @see #unsetExpression() + * @see #getExpression() + * @generated + */ + void setExpression(String value); + + /** + * Unsets the value of the '{@link rba.core.Expression#getExpression Expression}' attribute. + * + * + * @see #isSetExpression() + * @see #getExpression() + * @see #setExpression(String) + * @generated + */ + void unsetExpression(); + + /** + * Returns whether the value of the '{@link rba.core.Expression#getExpression Expression}' attribute is set. + * + * + * @return whether the value of the 'Expression' attribute is set. + * @see #unsetExpression() + * @see #getExpression() + * @see #setExpression(String) + * @generated + */ + boolean isSetExpression(); + + /** + * Returns the value of the 'Let Statements' containment reference list. + * The list contents are of type {@link rba.core.LetStatement}. + * + *

+ * If the meaning of the 'Let Statements' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Let Statements' containment reference list. + * @see rba.core.RBACorePackage#getExpression_LetStatements() + * @model containment="true" + * @generated + */ + EList getLetStatements(); + + /** + * + * + * + * + * + * @model kind="operation" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * + * + * + * @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; + +/** + * + * A representation of the literals of the enumeration 'Expression Type', + * and utility methods for working with them. + * + * + * + * + * @see rba.core.RBACorePackage#getExpressionType() + * @model + * @generated + */ +public enum ExpressionType implements Enumerator { + /** + * The 'VALUE' literal object. + * + * + * @see #VALUE_VALUE + * @generated + * @ordered + */ + VALUE(0, "VALUE", "VALUE"), + + /** + * The 'BOOLEAN' literal object. + * + * + * @see #BOOLEAN_VALUE + * @generated + * @ordered + */ + BOOLEAN(1, "BOOLEAN", "BOOLEAN"), + + /** + * The 'AREA' literal object. + * + * + * @see #AREA_VALUE + * @generated + * @ordered + */ + AREA(2, "AREA", "AREA"), + + /** + * The 'CONTENT' literal object. + * + * + * @see #CONTENT_VALUE + * @generated + * @ordered + */ + CONTENT(3, "CONTENT", "CONTENT"), + + /** + * The 'SET OF AREA' literal object. + * + * + * @see #SET_OF_AREA_VALUE + * @generated + * @ordered + */ + SET_OF_AREA(4, "SET_OF_AREA", "SET_OF_AREA"), + + /** + * The 'SET OF CONTENT' literal object. + * + * + * @see #SET_OF_CONTENT_VALUE + * @generated + * @ordered + */ + SET_OF_CONTENT(5, "SET_OF_CONTENT", "SET_OF_CONTENT"), + + /** + * The 'LAMBDA' literal object. + * + * + * @see #LAMBDA_VALUE + * @generated + * @ordered + */ + LAMBDA(6, "LAMBDA", "LAMBDA"), + + /** + * The 'SCENE' literal object. + * + * + * @see #SCENE_VALUE + * @generated + * @ordered + */ + SCENE(7, "SCENE", "SCENE"), + + /** + * The 'ZONE' literal object. + * + * + * @see #ZONE_VALUE + * @generated + * @ordered + */ + ZONE(8, "ZONE", "ZONE"), + + /** + * The 'SET OF ZONE' literal object. + * + * + * @see #SET_OF_ZONE_VALUE + * @generated + * @ordered + */ + SET_OF_ZONE(9, "SET_OF_ZONE", "SET_OF_ZONE"), + + /** + * The 'SOUND' literal object. + * + * + * @see #SOUND_VALUE + * @generated + * @ordered + */ + SOUND(10, "SOUND", "SOUND"), + + /** + * The 'SET OF SOUND' literal object. + * + * + * @see #SET_OF_SOUND_VALUE + * @generated + * @ordered + */ + SET_OF_SOUND(11, "SET_OF_SOUND", "SET_OF_SOUND"), + + /** + * The 'PROPERTY' literal object. + * + * + * @see #PROPERTY_VALUE + * @generated + * @ordered + */ + PROPERTY(14, "PROPERTY", "PROPERTY"), + + /** + * The 'CONTENT STATE' literal object. + * + * + * @see #CONTENT_STATE_VALUE + * @generated + * @ordered + */ + CONTENT_STATE(17, "CONTENT_STATE", "CONTENT_STATE"), + + /** + * The 'ENUM' literal object. + * + * + * @see #ENUM_VALUE + * @generated + * @ordered + */ + ENUM(21, "ENUM", "ENUM"), + + /** + * The 'NULL' literal object. + * + * + * @see #NULL_VALUE + * @generated + * @ordered + */ + NULL(23, "NULL", "NULL"); + + /** + * The 'VALUE' literal value. + * + *

+ * If the meaning of 'VALUE' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #VALUE + * @model + * @generated + * @ordered + */ + public static final int VALUE_VALUE = 0; + + /** + * The 'BOOLEAN' literal value. + * + *

+ * If the meaning of 'BOOLEAN' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #BOOLEAN + * @model + * @generated + * @ordered + */ + public static final int BOOLEAN_VALUE = 1; + + /** + * The 'AREA' literal value. + * + *

+ * If the meaning of 'AREA' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #AREA + * @model + * @generated + * @ordered + */ + public static final int AREA_VALUE = 2; + + /** + * The 'CONTENT' literal value. + * + *

+ * If the meaning of 'CONTENT' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #CONTENT + * @model + * @generated + * @ordered + */ + public static final int CONTENT_VALUE = 3; + + /** + * The 'SET OF AREA' literal value. + * + *

+ * If the meaning of 'SET OF AREA' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #SET_OF_AREA + * @model + * @generated + * @ordered + */ + public static final int SET_OF_AREA_VALUE = 4; + + /** + * The 'SET OF CONTENT' literal value. + * + *

+ * If the meaning of 'SET OF CONTENT' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #SET_OF_CONTENT + * @model + * @generated + * @ordered + */ + public static final int SET_OF_CONTENT_VALUE = 5; + + /** + * The 'LAMBDA' literal value. + * + *

+ * If the meaning of 'LAMBDA' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #LAMBDA + * @model + * @generated + * @ordered + */ + public static final int LAMBDA_VALUE = 6; + + /** + * The 'SCENE' literal value. + * + *

+ * If the meaning of 'SCENE' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #SCENE + * @model + * @generated + * @ordered + */ + public static final int SCENE_VALUE = 7; + + /** + * The 'ZONE' literal value. + * + *

+ * If the meaning of 'ZONE' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #ZONE + * @model + * @generated + * @ordered + */ + public static final int ZONE_VALUE = 8; + + /** + * The 'SET OF ZONE' literal value. + * + *

+ * If the meaning of 'SET OF ZONE' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #SET_OF_ZONE + * @model + * @generated + * @ordered + */ + public static final int SET_OF_ZONE_VALUE = 9; + + /** + * The 'SOUND' literal value. + * + *

+ * If the meaning of 'SOUND' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #SOUND + * @model + * @generated + * @ordered + */ + public static final int SOUND_VALUE = 10; + + /** + * The 'SET OF SOUND' literal value. + * + *

+ * If the meaning of 'SET OF SOUND' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #SET_OF_SOUND + * @model + * @generated + * @ordered + */ + public static final int SET_OF_SOUND_VALUE = 11; + + /** + * The 'PROPERTY' literal value. + * + *

+ * If the meaning of 'PROPERTY' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #PROPERTY + * @model + * @generated + * @ordered + */ + public static final int PROPERTY_VALUE = 14; + + /** + * The 'CONTENT STATE' literal value. + * + *

+ * If the meaning of 'CONTENT STATE' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #CONTENT_STATE + * @model + * @generated + * @ordered + */ + public static final int CONTENT_STATE_VALUE = 17; + + /** + * The 'ENUM' literal value. + * + *

+ * If the meaning of 'ENUM' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #ENUM + * @model + * @generated + * @ordered + */ + public static final int ENUM_VALUE = 21; + + /** + * The 'NULL' literal value. + * + *

+ * If the meaning of 'NULL' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #NULL + * @model + * @generated + * @ordered + */ + public static final int NULL_VALUE = 23; + + /** + * An array of all the 'Expression Type' enumerators. + * + * + * @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 'Expression Type' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Expression Type' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @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 'Expression Type' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @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 'Expression Type' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @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; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ExpressionType(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @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; + +/** + * + * A representation of the model object 'For All Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getForAllOperator() + * @model + * @generated + */ +public interface ForAllOperator extends LambdaContext { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nrba.core.LambdaExpression lambda = getLambda();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\" \");\r\nexpressionText.append(expressions.size() > 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(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"For All\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='rba.core.LambdaExpression lambda = getLambda();\r\nif (lambda != null && 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; + +/** + * + * A representation of the model object 'Get Allocatables'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getGetAllocatables() + * @model + * @generated + */ +public interface GetAllocatables extends ContentOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".allocatables()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='EList<rba.core.Expression> expressions = getOperand();\r\nif (!expressions.isEmpty() && 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; + +/** + * + * A representation of the model object 'Get Contents List'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getGetContentsList() + * @model + * @generated + */ +public interface GetContentsList extends AllocatableOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".contentsList()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='EList<rba.core.Expression> expressions = getOperand();\r\nif (!expressions.isEmpty() && 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; + +/** + * + * A representation of the model object 'Get Property'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getGetProperty() + * @model + * @generated + */ +public interface GetProperty extends PropertyOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".get()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Get State'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getGetState() + * @model + * @generated + */ +public interface GetState extends EObject { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Greater Than Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getGreaterThanOperator() + * @model + * @generated + */ +public interface GreaterThanOperator extends ComparisonOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \">\";'" + * @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; + +/** + * + * A representation of the model object 'Has Been Displayed'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getHasBeenDisplayed() + * @model + * @generated + */ +public interface HasBeenDisplayed extends ContentOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".hasBeenDisplayed()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Has Come Earlier Than'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getHasComeEarlierThan() + * @model + * @generated + */ +public interface HasComeEarlierThan extends ContentOperator { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".hasComeEarlierThan\"; //$NON-NLS-1$'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Has Come Later Than'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getHasComeLaterThan() + * @model + * @generated + */ +public interface HasComeLaterThan extends ContentOperator { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".hasComeLaterThan\"; //$NON-NLS-1$'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'If Action Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getIfActionOperator() + * @model + * @generated + */ +public interface IfActionOperator extends ActionOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"=>\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(\"(\");\r\nfor (int i = 0; i < 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; + +/** + * + * A representation of the model object 'If Statement'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.IfStatement#getCondition Condition}
  • + *
  • {@link rba.core.IfStatement#getThenExpression Then Expression}
  • + *
  • {@link rba.core.IfStatement#getElseExpression Else Expression}
  • + *
+ * + * @see rba.core.RBACorePackage#getIfStatement() + * @model + * @generated + */ +public interface IfStatement extends Expression { + /** + * Returns the value of the 'Condition' containment reference. + * + * + * + * + * + * @return the value of the 'Condition' 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 Condition}' containment reference. + * + * + * @param value the new value of the 'Condition' containment reference. + * @see #getCondition() + * @generated + */ + void setCondition(Expression value); + + /** + * Returns the value of the 'Then Expression' containment reference. + * + * + * + * + * + * @return the value of the 'Then Expression' 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 Then Expression}' containment reference. + * + * + * @param value the new value of the 'Then Expression' containment reference. + * @see #getThenExpression() + * @generated + */ + void setThenExpression(Expression value); + + /** + * Returns the value of the 'Else Expression' containment reference. + * + * + * + * + * + * @return the value of the 'Else Expression' 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 Else Expression}' containment reference. + * + * + * @param value the new value of the 'Else Expression' containment reference. + * @see #getElseExpression() + * @generated + */ + void setElseExpression(Expression value); + + /** + * + * + * + * @Override + * + * @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(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Implies Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getImpliesOperator() + * @model + * @generated + */ +public interface ImpliesOperator extends LogicalOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"->\";'" + * @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; + +/** + * + * A representation of the model object 'Integer Property'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.IntegerProperty#getValue Value}
  • + *
+ * + * @see rba.core.RBACorePackage#getIntegerProperty() + * @model + * @generated + */ +public interface IntegerProperty extends AbstractProperty { + /** + * Returns the value of the 'Value' containment reference. + * + *

+ * If the meaning of the 'Value' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Value' 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 Value}' containment reference. + * + * + * @param value the new value of the 'Value' 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; + +/** + * + * A representation of the model object 'Integer Value'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.IntegerValue#getValue Value}
  • + *
+ * + * @see rba.core.RBACorePackage#getIntegerValue() + * @model + * @generated + */ +public interface IntegerValue extends ValueExpression { + /** + * Returns the value of the 'Value' attribute. + * + * + * + * + * + * @return the value of the 'Value' 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 Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(int value); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return String.valueOf(value);'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Active'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getIsActive() + * @model + * @generated + */ +public interface IsActive extends ContentOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isActive()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Allocated To'. + * + * + * + * @see rba.core.RBACorePackage#getIsAllocatedTo() + * @model + * @generated + */ +public interface IsAllocatedTo extends ContentOperator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isAllocatedTo\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Is Canceled'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getIsCanceled() + * @model + * @generated + */ +public interface IsCanceled extends ContentOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isCanceled()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Changed'. + * + * + * + * @see rba.core.RBACorePackage#getIsChanged() + * @model + * @generated + */ +public interface IsChanged extends AllocatableOperator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isChanged()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @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; + +/** + * + * A representation of the model object 'Is Disappeared'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getIsDisappeared() + * @model + * @generated + */ +public interface IsDisappeared extends ContentOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isDisappeared()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Equal To Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getIsEqualToOperator() + * @model + * @generated + */ +public interface IsEqualToOperator extends LogicalOperator { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Greater Than Equal Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getIsGreaterThanEqualOperator() + * @model + * @generated + */ +public interface IsGreaterThanEqualOperator extends LogicalOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \">=\";'" + * @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; + +/** + * + * A representation of the model object 'Is Greater Than Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getIsGreaterThanOperator() + * @model + * @generated + */ +public interface IsGreaterThanOperator extends LogicalOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \">\";'" + * @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; + +/** + * + * A representation of the model object 'Is Lower Than Equal Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getIsLowerThanEqualOperator() + * @model + * @generated + */ +public interface IsLowerThanEqualOperator extends LogicalOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"<=\";'" + * @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; + +/** + * + * A representation of the model object 'Is Lower Than Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getIsLowerThanOperator() + * @model + * @generated + */ +public interface IsLowerThanOperator extends LogicalOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"<\";'" + * @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; + +/** + * + * A representation of the model object 'Is On'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getIsOn() + * @model + * @generated + */ +public interface IsOn extends SceneOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isOn()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Translated To'. + * + * + * + * @see rba.core.RBACorePackage#getIsTranslatedTo() + * @model + * @generated + */ +public interface IsTranslatedTo extends AllocatableOperator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isTranslatedTo\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Is Type Of'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.IsTypeOf#getTagName Tag Name}
  • + *
+ * + * @see rba.core.RBACorePackage#getIsTypeOf() + * @model + * @generated + */ +public interface IsTypeOf extends Operator { + /** + * Returns the value of the 'Tag Name' attribute. + * + *

+ * If the meaning of the 'Tag Name' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Tag Name' 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 Tag Name}' attribute. + * + * + * @param value the new value of the 'Tag Name' attribute. + * @see #getTagName() + * @generated + */ + void setTagName(String value); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 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(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isTypeOf\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Lambda Context'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.LambdaContext#getLambda Lambda}
  • + *
+ * + * @see rba.core.RBACorePackage#getLambdaContext() + * @model abstract="true" + * @generated + */ +public interface LambdaContext extends SetOperator { + /** + * Returns the value of the 'Lambda' containment reference. + * It is bidirectional and its opposite is '{@link rba.core.LambdaExpression#getContext Context}'. + * + * + * + * + * + * @return the value of the 'Lambda' 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 Lambda}' containment reference. + * + * + * @param value the new value of the 'Lambda' containment reference. + * @see #getLambda() + * @generated + */ + void setLambda(LambdaExpression value); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Lambda Expression'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.LambdaExpression#getContext Context}
  • + *
  • {@link rba.core.LambdaExpression#getX X}
  • + *
  • {@link rba.core.LambdaExpression#getBodyText Body Text}
  • + *
+ * + * @see rba.core.RBACorePackage#getLambdaExpression() + * @model + * @generated + */ +public interface LambdaExpression extends Expression { + /** + * Returns the value of the 'Context' container reference. + * It is bidirectional and its opposite is '{@link rba.core.LambdaContext#getLambda Lambda}'. + * + * + * + * + * + * @return the value of the 'Context' 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 Context}' container reference. + * + * + * @param value the new value of the 'Context' container reference. + * @see #getContext() + * @generated + */ + void setContext(LambdaContext value); + + /** + * Returns the value of the 'X' containment reference. + * + * + * + * + * + * @return the value of the 'X' 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 X}' containment reference. + * + * + * @param value the new value of the 'X' containment reference. + * @see #getX() + * @generated + */ + void setX(Variable value); + + /** + * Returns the value of the 'Body Text' containment reference. + * + * + * + * + * + * @return the value of the 'Body Text' 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 Body Text}' containment reference. + * + * + * @param value the new value of the 'Body Text' containment reference. + * @see #getBodyText() + * @generated + */ + void setBodyText(Expression value); + + /** + * + * + * + * @Override + * + * @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 -> expressionText.append(let));\r\nexpressionText.append(bodyText != null ? bodyText.getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" }\");\r\nreturn expressionText.toString();'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Let Statement'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.LetStatement#getVariable Variable}
  • + *
  • {@link rba.core.LetStatement#getBody Body}
  • + *
+ * + * @see rba.core.RBACorePackage#getLetStatement() + * @model + * @generated + */ +public interface LetStatement extends ModelElement { + /** + * Returns the value of the 'Variable' containment reference. + * + *

+ * If the meaning of the 'Variable' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Variable' 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 Variable}' containment reference. + * + * + * @param value the new value of the 'Variable' containment reference. + * @see #getVariable() + * @generated + */ + void setVariable(Variable value); + + /** + * Returns the value of the 'Body' containment reference. + * + *

+ * If the meaning of the 'Body' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Body' 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 Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Expression value); + + /** + * + * + * @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; + +/** + * + * A representation of the model object 'Logical Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getLogicalOperator() + * @model abstract="true" + * @generated + */ +public interface LogicalOperator extends Operator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(\"(\");\r\nfor (int i = 0; i < 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; + +/** + * + * A representation of the literals of the enumeration 'Loser Type', + * and utility methods for working with them. + * + * + * + * + * @see rba.core.RBACorePackage#getLoserType() + * @model + * @generated + */ +public enum LoserType implements Enumerator { + /** + * The 'NEVER GIVEUP' literal object. + * + * + * @see #NEVER_GIVEUP_VALUE + * @generated + * @ordered + */ + NEVER_GIVEUP(0, "NEVER_GIVEUP", "NEVER_GIVEUP"), + + /** + * The 'GOOD LOSER' literal object. + * + * + * @see #GOOD_LOSER_VALUE + * @generated + * @ordered + */ + GOOD_LOSER(0, "GOOD_LOSER", "GOOD_LOSER"), + + /** + * The 'DO NOT GIVEUP UNTIL WIN' literal object. + * + * + * @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 'NEVER GIVEUP' literal value. + * + * + * + * + * + * @see #NEVER_GIVEUP + * @model + * @generated + * @ordered + */ + public static final int NEVER_GIVEUP_VALUE = 0; + + /** + * The 'GOOD LOSER' literal value. + * + * + * + * + * + * @see #GOOD_LOSER + * @model + * @generated + * @ordered + */ + public static final int GOOD_LOSER_VALUE = 0; + + /** + * The 'DO NOT GIVEUP UNTIL WIN' literal value. + * + * + * + * + * + * @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 'Loser Type' enumerators. + * + * + * @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 'Loser Type' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Loser Type' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @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 'Loser Type' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @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 'Loser Type' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static LoserType get(int value) { + switch (value) { + case NEVER_GIVEUP_VALUE: + return NEVER_GIVEUP; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private LoserType(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @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; + +/** + * + * A representation of the model object 'Loser Type Expression'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.LoserTypeExpression#getValue Value}
  • + *
+ * + * @see rba.core.RBACorePackage#getLoserTypeExpression() + * @model + * @generated + */ +public interface LoserTypeExpression extends EnumExpression { + /** + * Returns the value of the 'Value' attribute. + * The literals are from the enumeration {@link rba.core.LoserType}. + * + * + * + * + * + * @return the value of the 'Value' 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 Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see rba.core.LoserType + * @see #getValue() + * @generated + */ + void setValue(LoserType value); + + /** + * + * + * + * @Override + * + * @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(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Lower Than Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getLowerThanOperator() + * @model + * @generated + */ +public interface LowerThanOperator extends ComparisonOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"<\";'" + * @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; + +/** + * + * A representation of the model object 'Max Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getMaxOperator() + * @model + * @generated + */ +public interface MaxOperator extends LambdaContext { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nrba.core.LambdaExpression lambda = getLambda();\r\nexpressionText.append(expressions.size() > 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(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".max\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Max Value'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getMaxValue() + * @model + * @generated + */ +public interface MaxValue extends ValueExpression { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"MAX\";'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Min Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getMinOperator() + * @model + * @generated + */ +public interface MinOperator extends LambdaContext { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nrba.core.LambdaExpression lambda = getLambda();\r\nexpressionText.append(expressions.size() > 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(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".min\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Min Value'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getMinValue() + * @model + * @generated + */ +public interface MinValue extends ValueExpression { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"MIN\";'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Model Element'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.ModelElement#getDescription Description}
  • + *
+ * + * @see rba.core.RBACorePackage#getModelElement() + * @model abstract="true" + * @generated + */ +public interface ModelElement extends EObject { + /** + * Returns the value of the 'Description' attribute. + * + * + * + * + * + * @return the value of the 'Description' attribute. + * @see #setDescription(String) + * @see rba.core.RBACorePackage#getModelElement_Description() + * @model + * @generated + */ + String getDescription(); + + /** + * Sets the value of the '{@link rba.core.ModelElement#getDescription Description}' attribute. + * + * + * @param value the new value of the 'Description' 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; + +/** + * + * A representation of the model object 'Much Greater Than Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getMuchGreaterThanOperator() + * @model + * @generated + */ +public interface MuchGreaterThanOperator extends ComparisonOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \">>\";'" + * @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; + +/** + * + * A representation of the model object 'Named Element'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.NamedElement#getName Name}
  • + *
+ * + * @see rba.core.RBACorePackage#getNamedElement() + * @model abstract="true" + * @generated + */ +public interface NamedElement extends ModelElement { + /** + * Returns the value of the 'Name' attribute. + * + * + * + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see rba.core.RBACorePackage#getNamedElement_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link rba.core.NamedElement#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' 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; + +/** + * + * A representation of the model object 'None Value'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getNoneValue() + * @model + * @generated + */ +public interface NoneValue extends ValueExpression { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"NONE\";'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Not Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getNotOperator() + * @model + * @generated + */ +public interface NotOperator extends LogicalOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"!\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Null Expression'. + * + * + * + * NULL keyword + * + * + * + * @see rba.core.RBACorePackage#getNullExpression() + * @model + * @generated + */ +public interface NullExpression extends Expression { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.NULL;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Object Compare'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getObjectCompare() + * @model + * @generated + */ +public interface ObjectCompare extends Operator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"==\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" \");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\" \");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Object Compare Not'. + * + * + * + * @see rba.core.RBACorePackage#getObjectCompareNot() + * @model + * @generated + */ +public interface ObjectCompareNot extends Operator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"!=\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" \");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\" \");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Object Reference'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.ObjectReference#getRefObject Ref Object}
  • + *
+ * + * @see rba.core.RBACorePackage#getObjectReference() + * @model + * @generated + */ +public interface ObjectReference extends Expression { + /** + * Returns the value of the 'Ref Object' reference. + * + * + * + * + * + * @return the value of the 'Ref Object' reference. + * @see #setRefObject(RuleObject) + * @see rba.core.RBACorePackage#getObjectReference_RefObject() + * @model + * @generated + */ + RuleObject getRefObject(); + + /** + * Sets the value of the '{@link rba.core.ObjectReference#getRefObject Ref Object}' reference. + * + * + * @param value the new value of the 'Ref Object' reference. + * @see #getRefObject() + * @generated + */ + void setRefObject(RuleObject value); + + /** + * + * + * + * @Override + * + * @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(); + + /** + * + * + * + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nRuleObject obj = getRefObject();\r\nif (obj instanceof <%rba.core.ContentState%>) {\r\n ContentState state = (ContentState) obj;\r\n expressionText.append(state.getOwner().getName() + \".\" + state.getName());\r\n} else if (obj instanceof <%rba.core.AbstractProperty%>) {\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; + +/** + * + * A representation of the model object 'Off Scene'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getOffScene() + * @model + * @generated + */ +public interface OffScene extends SceneOperator { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'On Scene'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getOnScene() + * @model + * @generated + */ +public interface OnScene extends SceneOperator { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Operator'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.Operator#getOperand Operand}
  • + *
+ * + * @see rba.core.RBACorePackage#getOperator() + * @model abstract="true" + * @generated + */ +public interface Operator extends Expression { + /** + * Returns the value of the 'Operand' containment reference list. + * The list contents are of type {@link rba.core.Expression}. + * + * + * + * + * + * @return the value of the 'Operand' containment reference list. + * @see rba.core.RBACorePackage#getOperator_Operand() + * @model containment="true" required="true" + * @generated + */ + EList getOperand(); + + /** + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'Or Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getOrOperator() + * @model + * @generated + */ +public interface OrOperator extends LogicalOperator { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Packagable Element'. + * + * + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'Package'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.Package#getPackagableelement Packagableelement}
  • + *
+ * + * @see rba.core.RBACorePackage#getPackage() + * @model + * @generated + */ +public interface Package extends PackagableElement { + /** + * Returns the value of the 'Packagableelement' containment reference list. + * The list contents are of type {@link rba.core.PackagableElement}. + * + * + * + * + * + * @return the value of the 'Packagableelement' containment reference list. + * @see rba.core.RBACorePackage#getPackage_Packagableelement() + * @model containment="true" + * @generated + */ + EList 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; + +/** + * + * A representation of the model object 'Plus Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getPlusOperator() + * @model + * @generated + */ +public interface PlusOperator extends ArithmeticOperator { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Previous Modifier'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.PreviousModifier#getObjReference Obj Reference}
  • + *
+ * + * @see rba.core.RBACorePackage#getPreviousModifier() + * @model + * @generated + */ +public interface PreviousModifier extends Expression { + /** + * Returns the value of the 'Obj Reference' containment reference. + * + *

+ * If the meaning of the 'Obj Reference' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Obj Reference' 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 Obj Reference}' containment reference. + * + * + * @param value the new value of the 'Obj Reference' containment reference. + * @see #getObjReference() + * @generated + */ + void setObjReference(ObjectReference value); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"(pre)\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nif (getObjReference() != null && 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; + +/** + * + * A representation of the model object 'Project'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.Project#getVersion Version}
  • + *
  • {@link rba.core.Project#getDummyName Dummy Name}
  • + *
+ * + * @see rba.core.RBACorePackage#getProject() + * @model + * @generated + */ +public interface Project extends rba.core.Package { + /** + * Returns the value of the 'Version' attribute. + * + *

+ * If the meaning of the 'Version' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Version' attribute. + * @see #setVersion(String) + * @see rba.core.RBACorePackage#getProject_Version() + * @model + * @generated + */ + String getVersion(); + + /** + * Sets the value of the '{@link rba.core.Project#getVersion Version}' attribute. + * + * + * @param value the new value of the 'Version' attribute. + * @see #getVersion() + * @generated + */ + void setVersion(String value); + + /** + * Returns the value of the 'Dummy Name' attribute. + * + *

+ * If the meaning of the 'Dummy Name' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Dummy Name' attribute. + * @see #setDummyName(String) + * @see rba.core.RBACorePackage#getProject_DummyName() + * @model + * @generated + */ + String getDummyName(); + + /** + * Sets the value of the '{@link rba.core.Project#getDummyName Dummy Name}' attribute. + * + * + * @param value the new value of the 'Dummy Name' attribute. + * @see #getDummyName() + * @generated + */ + void setDummyName(String value); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Property Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getPropertyOperator() + * @model abstract="true" + * @generated + */ +public interface PropertyOperator extends Operator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.PROPERTY;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see rba.core.RBACorePackage + * @generated + */ +public interface RBACoreFactory extends EFactory { + /** + * The singleton instance of the factory. + * + * + * @generated + */ + RBACoreFactory eINSTANCE = rba.core.impl.RBACoreFactoryImpl.init(); + + /** + * Returns a new object of class 'Project'. + * + * + * @return a new object of class 'Project'. + * @generated + */ + Project createProject(); + + /** + * Returns a new object of class 'Package'. + * + * + * @return a new object of class 'Package'. + * @generated + */ + Package createPackage(); + + /** + * Returns a new object of class 'Stereotype'. + * + * + * @return a new object of class 'Stereotype'. + * @generated + */ + Stereotype createStereotype(); + + /** + * Returns a new object of class 'Tag'. + * + * + * @return a new object of class 'Tag'. + * @generated + */ + Tag createTag(); + + /** + * Returns a new object of class 'Scene'. + * + * + * @return a new object of class 'Scene'. + * @generated + */ + Scene createScene(); + + /** + * Returns a new object of class 'Integer Property'. + * + * + * @return a new object of class 'Integer Property'. + * @generated + */ + IntegerProperty createIntegerProperty(); + + /** + * Returns a new object of class 'Constraint'. + * + * + * @return a new object of class 'Constraint'. + * @generated + */ + Constraint createConstraint(); + + /** + * Returns a new object of class 'Let Statement'. + * + * + * @return a new object of class 'Let Statement'. + * @generated + */ + LetStatement createLetStatement(); + + /** + * Returns a new object of class 'Complex Expression'. + * + * + * @return a new object of class 'Complex Expression'. + * @generated + */ + ComplexExpression createComplexExpression(); + + /** + * Returns a new object of class 'Is Type Of'. + * + * + * @return a new object of class 'Is Type Of'. + * @generated + */ + IsTypeOf createIsTypeOf(); + + /** + * Returns a new object of class 'Object Reference'. + * + * + * @return a new object of class 'Object Reference'. + * @generated + */ + ObjectReference createObjectReference(); + + /** + * Returns a new object of class 'Previous Modifier'. + * + * + * @return a new object of class 'Previous Modifier'. + * @generated + */ + PreviousModifier createPreviousModifier(); + + /** + * Returns a new object of class 'Greater Than Operator'. + * + * + * @return a new object of class 'Greater Than Operator'. + * @generated + */ + GreaterThanOperator createGreaterThanOperator(); + + /** + * Returns a new object of class 'Much Greater Than Operator'. + * + * + * @return a new object of class 'Much Greater Than Operator'. + * @generated + */ + MuchGreaterThanOperator createMuchGreaterThanOperator(); + + /** + * Returns a new object of class 'Lower Than Operator'. + * + * + * @return a new object of class 'Lower Than Operator'. + * @generated + */ + LowerThanOperator createLowerThanOperator(); + + /** + * Returns a new object of class 'Equal To Operator'. + * + * + * @return a new object of class 'Equal To Operator'. + * @generated + */ + EqualToOperator createEqualToOperator(); + + /** + * Returns a new object of class 'Comparison And'. + * + * + * @return a new object of class 'Comparison And'. + * @generated + */ + ComparisonAnd createComparisonAnd(); + + /** + * Returns a new object of class 'And Operator'. + * + * + * @return a new object of class 'And Operator'. + * @generated + */ + AndOperator createAndOperator(); + + /** + * Returns a new object of class 'Or Operator'. + * + * + * @return a new object of class 'Or Operator'. + * @generated + */ + OrOperator createOrOperator(); + + /** + * Returns a new object of class 'Not Operator'. + * + * + * @return a new object of class 'Not Operator'. + * @generated + */ + NotOperator createNotOperator(); + + /** + * Returns a new object of class 'Is Equal To Operator'. + * + * + * @return a new object of class 'Is Equal To Operator'. + * @generated + */ + IsEqualToOperator createIsEqualToOperator(); + + /** + * Returns a new object of class 'Is Greater Than Operator'. + * + * + * @return a new object of class 'Is Greater Than Operator'. + * @generated + */ + IsGreaterThanOperator createIsGreaterThanOperator(); + + /** + * Returns a new object of class 'Is Lower Than Operator'. + * + * + * @return a new object of class 'Is Lower Than Operator'. + * @generated + */ + IsLowerThanOperator createIsLowerThanOperator(); + + /** + * Returns a new object of class 'Is Greater Than Equal Operator'. + * + * + * @return a new object of class 'Is Greater Than Equal Operator'. + * @generated + */ + IsGreaterThanEqualOperator createIsGreaterThanEqualOperator(); + + /** + * Returns a new object of class 'Is Lower Than Equal Operator'. + * + * + * @return a new object of class 'Is Lower Than Equal Operator'. + * @generated + */ + IsLowerThanEqualOperator createIsLowerThanEqualOperator(); + + /** + * Returns a new object of class 'Plus Operator'. + * + * + * @return a new object of class 'Plus Operator'. + * @generated + */ + PlusOperator createPlusOperator(); + + /** + * Returns a new object of class 'Implies Operator'. + * + * + * @return a new object of class 'Implies Operator'. + * @generated + */ + ImpliesOperator createImpliesOperator(); + + /** + * Returns a new object of class 'Is Active'. + * + * + * @return a new object of class 'Is Active'. + * @generated + */ + IsActive createIsActive(); + + /** + * Returns a new object of class 'Get Allocatables'. + * + * + * @return a new object of class 'Get Allocatables'. + * @generated + */ + GetAllocatables createGetAllocatables(); + + /** + * Returns a new object of class 'Has Been Displayed'. + * + * + * @return a new object of class 'Has Been Displayed'. + * @generated + */ + HasBeenDisplayed createHasBeenDisplayed(); + + /** + * Returns a new object of class 'Active State'. + * + * + * @return a new object of class 'Active State'. + * @generated + */ + ActiveState createActiveState(); + + /** + * Returns a new object of class 'Object Compare'. + * + * + * @return a new object of class 'Object Compare'. + * @generated + */ + ObjectCompare createObjectCompare(); + + /** + * Returns a new object of class 'That Of Operator'. + * + * + * @return a new object of class 'That Of Operator'. + * @generated + */ + ThatOfOperator createThatOfOperator(); + + /** + * Returns a new object of class 'Max Value'. + * + * + * @return a new object of class 'Max Value'. + * @generated + */ + MaxValue createMaxValue(); + + /** + * Returns a new object of class 'Min Value'. + * + * + * @return a new object of class 'Min Value'. + * @generated + */ + MinValue createMinValue(); + + /** + * Returns a new object of class 'None Value'. + * + * + * @return a new object of class 'None Value'. + * @generated + */ + NoneValue createNoneValue(); + + /** + * Returns a new object of class 'Standard Value'. + * + * + * @return a new object of class 'Standard Value'. + * @generated + */ + StandardValue createStandardValue(); + + /** + * Returns a new object of class 'Integer Value'. + * + * + * @return a new object of class 'Integer Value'. + * @generated + */ + IntegerValue createIntegerValue(); + + /** + * Returns a new object of class 'Loser Type Expression'. + * + * + * @return a new object of class 'Loser Type Expression'. + * @generated + */ + LoserTypeExpression createLoserTypeExpression(); + + /** + * Returns a new object of class 'Arbitration Policy Expression'. + * + * + * @return a new object of class 'Arbitration Policy Expression'. + * @generated + */ + ArbitrationPolicyExpression createArbitrationPolicyExpression(); + + /** + * Returns a new object of class 'Size Operator'. + * + * + * @return a new object of class 'Size Operator'. + * @generated + */ + SizeOperator createSizeOperator(); + + /** + * Returns a new object of class 'Exists Operator'. + * + * + * @return a new object of class 'Exists Operator'. + * @generated + */ + ExistsOperator createExistsOperator(); + + /** + * Returns a new object of class 'For All Operator'. + * + * + * @return a new object of class 'For All Operator'. + * @generated + */ + ForAllOperator createForAllOperator(); + + /** + * Returns a new object of class 'Max Operator'. + * + * + * @return a new object of class 'Max Operator'. + * @generated + */ + MaxOperator createMaxOperator(); + + /** + * Returns a new object of class 'Min Operator'. + * + * + * @return a new object of class 'Min Operator'. + * @generated + */ + MinOperator createMinOperator(); + + /** + * Returns a new object of class 'Select Operator'. + * + * + * @return a new object of class 'Select Operator'. + * @generated + */ + SelectOperator createSelectOperator(); + + /** + * Returns a new object of class 'Set Of Operator'. + * + * + * @return a new object of class 'Set Of Operator'. + * @generated + */ + SetOfOperator createSetOfOperator(); + + /** + * Returns a new object of class 'Lambda Expression'. + * + * + * @return a new object of class 'Lambda Expression'. + * @generated + */ + LambdaExpression createLambdaExpression(); + + /** + * Returns a new object of class 'Variable'. + * + * + * @return a new object of class 'Variable'. + * @generated + */ + Variable createVariable(); + + /** + * Returns a new object of class 'If Statement'. + * + * + * @return a new object of class 'If Statement'. + * @generated + */ + IfStatement createIfStatement(); + + /** + * Returns a new object of class 'Is On'. + * + * + * @return a new object of class 'Is On'. + * @generated + */ + IsOn createIsOn(); + + /** + * Returns a new object of class 'Allocated Content'. + * + * + * @return a new object of class 'Allocated Content'. + * @generated + */ + AllocatedContent createAllocatedContent(); + + /** + * Returns a new object of class 'Content Value'. + * + * + * @return a new object of class 'Content Value'. + * @generated + */ + ContentValue createContentValue(); + + /** + * Returns a new object of class 'Get Contents List'. + * + * + * @return a new object of class 'Get Contents List'. + * @generated + */ + GetContentsList createGetContentsList(); + + /** + * Returns a new object of class 'Active Contents'. + * + * + * @return a new object of class 'Active Contents'. + * @generated + */ + ActiveContents createActiveContents(); + + /** + * Returns a new object of class 'Get Property'. + * + * + * @return a new object of class 'Get Property'. + * @generated + */ + GetProperty createGetProperty(); + + /** + * Returns a new object of class 'State Value'. + * + * + * @return a new object of class 'State Value'. + * @generated + */ + StateValue createStateValue(); + + /** + * Returns a new object of class 'Has Come Later Than'. + * + * + * @return a new object of class 'Has Come Later Than'. + * @generated + */ + HasComeLaterThan createHasComeLaterThan(); + + /** + * Returns a new object of class 'Has Come Earlier Than'. + * + * + * @return a new object of class 'Has Come Earlier Than'. + * @generated + */ + HasComeEarlierThan createHasComeEarlierThan(); + + /** + * Returns a new object of class 'Object Compare Not'. + * + * + * @return a new object of class 'Object Compare Not'. + * @generated + */ + ObjectCompareNot createObjectCompareNot(); + + /** + * Returns a new object of class 'Is Allocated To'. + * + * + * @return a new object of class 'Is Allocated To'. + * @generated + */ + IsAllocatedTo createIsAllocatedTo(); + + /** + * Returns a new object of class 'Is Changed'. + * + * + * @return a new object of class 'Is Changed'. + * @generated + */ + IsChanged createIsChanged(); + + /** + * Returns a new object of class 'Is Translated To'. + * + * + * @return a new object of class 'Is Translated To'. + * @generated + */ + IsTranslatedTo createIsTranslatedTo(); + + /** + * Returns a new object of class 'Get State'. + * + * + * @return a new object of class 'Get State'. + * @generated + */ + GetState createGetState(); + + /** + * Returns a new object of class 'Null Expression'. + * + * + * @return a new object of class 'Null Expression'. + * @generated + */ + NullExpression createNullExpression(); + + /** + * Returns the package supported by this factory. + * + * + * @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; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @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. + * + * + * @generated + */ + String eNAME = "core"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.denso.com/ict/rba/core"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "RbaCore"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + RBACorePackage eINSTANCE = rba.core.impl.RBACorePackageImpl.init(); + + /** + * The meta object id for the '{@link rba.core.impl.ModelElementImpl Model Element}' class. + * + * + * @see rba.core.impl.ModelElementImpl + * @see rba.core.impl.RBACorePackageImpl#getModelElement() + * @generated + */ + int MODEL_ELEMENT = 0; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int MODEL_ELEMENT__DESCRIPTION = 0; + + /** + * The number of structural features of the 'Model Element' class. + * + * + * @generated + * @ordered + */ + int MODEL_ELEMENT_FEATURE_COUNT = 1; + + /** + * The number of operations of the 'Model Element' class. + * + * + * @generated + * @ordered + */ + int MODEL_ELEMENT_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link rba.core.impl.NamedElementImpl Named Element}' class. + * + * + * @see rba.core.impl.NamedElementImpl + * @see rba.core.impl.RBACorePackageImpl#getNamedElement() + * @generated + */ + int NAMED_ELEMENT = 1; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__DESCRIPTION = MODEL_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__NAME = MODEL_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Named Element' class. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT_FEATURE_COUNT = MODEL_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Named Element' class. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT_OPERATION_COUNT = MODEL_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.PackagableElementImpl Packagable Element}' class. + * + * + * @see rba.core.impl.PackagableElementImpl + * @see rba.core.impl.RBACorePackageImpl#getPackagableElement() + * @generated + */ + int PACKAGABLE_ELEMENT = 6; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGABLE_ELEMENT__DESCRIPTION = NAMED_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGABLE_ELEMENT__NAME = NAMED_ELEMENT__NAME; + + /** + * The number of structural features of the 'Packagable Element' class. + * + * + * @generated + * @ordered + */ + int PACKAGABLE_ELEMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Packagable Element' class. + * + * + * @generated + * @ordered + */ + int PACKAGABLE_ELEMENT_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.RuleObjectImpl Rule Object}' class. + * + * + * @see rba.core.impl.RuleObjectImpl + * @see rba.core.impl.RBACorePackageImpl#getRuleObject() + * @generated + */ + int RULE_OBJECT = 10; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int RULE_OBJECT__DESCRIPTION = PACKAGABLE_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int RULE_OBJECT__NAME = PACKAGABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int RULE_OBJECT__TAGS = PACKAGABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Rule Object' class. + * + * + * @generated + * @ordered + */ + int RULE_OBJECT_FEATURE_COUNT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int RULE_OBJECT___GET_EXPRESSION_TYPE = PACKAGABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Rule Object' class. + * + * + * @generated + * @ordered + */ + int RULE_OBJECT_OPERATION_COUNT = PACKAGABLE_ELEMENT_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.AbstractAllocatableImpl Abstract Allocatable}' class. + * + * + * @see rba.core.impl.AbstractAllocatableImpl + * @see rba.core.impl.RBACorePackageImpl#getAbstractAllocatable() + * @generated + */ + int ABSTRACT_ALLOCATABLE = 2; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACT_ALLOCATABLE__DESCRIPTION = RULE_OBJECT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACT_ALLOCATABLE__NAME = RULE_OBJECT__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACT_ALLOCATABLE__TAGS = RULE_OBJECT__TAGS; + + /** + * The feature id for the 'Contents' reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACT_ALLOCATABLE__CONTENTS = RULE_OBJECT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Allocatable Group' reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP = RULE_OBJECT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Abstract Allocatable' class. + * + * + * @generated + * @ordered + */ + int ABSTRACT_ALLOCATABLE_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int ABSTRACT_ALLOCATABLE___GET_EXPRESSION_TYPE = RULE_OBJECT___GET_EXPRESSION_TYPE; + + /** + * The operation id for the 'Get Contents List' operation. + * + * + * @generated + * @ordered + */ + int ABSTRACT_ALLOCATABLE___GET_CONTENTS_LIST = RULE_OBJECT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Collect Leaf Allocatable' operation. + * + * + * @generated + * @ordered + */ + int ABSTRACT_ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE = RULE_OBJECT_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Abstract Allocatable' class. + * + * + * @generated + * @ordered + */ + int ABSTRACT_ALLOCATABLE_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.AllocatableImpl Allocatable}' class. + * + * + * @see rba.core.impl.AllocatableImpl + * @see rba.core.impl.RBACorePackageImpl#getAllocatable() + * @generated + */ + int ALLOCATABLE = 3; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE__DESCRIPTION = ABSTRACT_ALLOCATABLE__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE__NAME = ABSTRACT_ALLOCATABLE__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE__TAGS = ABSTRACT_ALLOCATABLE__TAGS; + + /** + * The feature id for the 'Contents' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE__CONTENTS = ABSTRACT_ALLOCATABLE__CONTENTS; + + /** + * The feature id for the 'Allocatable Group' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE__ALLOCATABLE_GROUP = ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP; + + /** + * The feature id for the 'Arbitration Policy' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE__ARBITRATION_POLICY = ABSTRACT_ALLOCATABLE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Visibility' containment reference. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE__VISIBILITY = ABSTRACT_ALLOCATABLE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Allocatable' class. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_FEATURE_COUNT = ABSTRACT_ALLOCATABLE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE___GET_EXPRESSION_TYPE = ABSTRACT_ALLOCATABLE___GET_EXPRESSION_TYPE; + + /** + * The operation id for the 'Get Contents List' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE___GET_CONTENTS_LIST = ABSTRACT_ALLOCATABLE___GET_CONTENTS_LIST; + + /** + * The operation id for the 'Collect Leaf Allocatable' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE = ABSTRACT_ALLOCATABLE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Allocatable' class. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_OPERATION_COUNT = ABSTRACT_ALLOCATABLE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.AllocatableSetImpl Allocatable Set}' class. + * + * + * @see rba.core.impl.AllocatableSetImpl + * @see rba.core.impl.RBACorePackageImpl#getAllocatableSet() + * @generated + */ + int ALLOCATABLE_SET = 4; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_SET__DESCRIPTION = ABSTRACT_ALLOCATABLE__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_SET__NAME = ABSTRACT_ALLOCATABLE__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_SET__TAGS = ABSTRACT_ALLOCATABLE__TAGS; + + /** + * The feature id for the 'Contents' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_SET__CONTENTS = ABSTRACT_ALLOCATABLE__CONTENTS; + + /** + * The feature id for the 'Allocatable Group' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_SET__ALLOCATABLE_GROUP = ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_SET__TARGET = ABSTRACT_ALLOCATABLE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Allocatable Set' class. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_SET_FEATURE_COUNT = ABSTRACT_ALLOCATABLE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_SET___GET_EXPRESSION_TYPE = ABSTRACT_ALLOCATABLE___GET_EXPRESSION_TYPE; + + /** + * The operation id for the 'Get Contents List' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_SET___GET_CONTENTS_LIST = ABSTRACT_ALLOCATABLE___GET_CONTENTS_LIST; + + /** + * The operation id for the 'Collect Leaf Allocatable' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_SET___COLLECT_LEAF_ALLOCATABLE = ABSTRACT_ALLOCATABLE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Allocatable Set' class. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_SET_OPERATION_COUNT = ABSTRACT_ALLOCATABLE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.PackageImpl Package}' class. + * + * + * @see rba.core.impl.PackageImpl + * @see rba.core.impl.RBACorePackageImpl#getPackage() + * @generated + */ + int PACKAGE = 7; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__DESCRIPTION = PACKAGABLE_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__NAME = PACKAGABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Packagableelement' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__PACKAGABLEELEMENT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Package' class. + * + * + * @generated + * @ordered + */ + int PACKAGE_FEATURE_COUNT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Package' class. + * + * + * @generated + * @ordered + */ + int PACKAGE_OPERATION_COUNT = PACKAGABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.ProjectImpl Project}' class. + * + * + * @see rba.core.impl.ProjectImpl + * @see rba.core.impl.RBACorePackageImpl#getProject() + * @generated + */ + int PROJECT = 5; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int PROJECT__DESCRIPTION = PACKAGE__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PROJECT__NAME = PACKAGE__NAME; + + /** + * The feature id for the 'Packagableelement' containment reference list. + * + * + * @generated + * @ordered + */ + int PROJECT__PACKAGABLEELEMENT = PACKAGE__PACKAGABLEELEMENT; + + /** + * The feature id for the 'Version' attribute. + * + * + * @generated + * @ordered + */ + int PROJECT__VERSION = PACKAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Dummy Name' attribute. + * + * + * @generated + * @ordered + */ + int PROJECT__DUMMY_NAME = PACKAGE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Project' class. + * + * + * @generated + * @ordered + */ + int PROJECT_FEATURE_COUNT = PACKAGE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Get Name' operation. + * + * + * @generated + * @ordered + */ + int PROJECT___GET_NAME = PACKAGE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Project' class. + * + * + * @generated + * @ordered + */ + int PROJECT_OPERATION_COUNT = PACKAGE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.StereotypeImpl Stereotype}' class. + * + * + * @see rba.core.impl.StereotypeImpl + * @see rba.core.impl.RBACorePackageImpl#getStereotype() + * @generated + */ + int STEREOTYPE = 8; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__DESCRIPTION = PACKAGABLE_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__NAME = PACKAGABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Target Model Name' attribute. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__TARGET_MODEL_NAME = PACKAGABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__VARIABLES = PACKAGABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Body Text' attribute. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__BODY_TEXT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Stereotype' class. + * + * + * @generated + * @ordered + */ + int STEREOTYPE_FEATURE_COUNT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The number of operations of the 'Stereotype' class. + * + * + * @generated + * @ordered + */ + int STEREOTYPE_OPERATION_COUNT = PACKAGABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.TagImpl Tag}' class. + * + * + * @see rba.core.impl.TagImpl + * @see rba.core.impl.RBACorePackageImpl#getTag() + * @generated + */ + int TAG = 9; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int TAG__DESCRIPTION = NAMED_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TAG__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Values' attribute list. + * + * + * @generated + * @ordered + */ + int TAG__VALUES = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Tag' class. + * + * + * @generated + * @ordered + */ + int TAG_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Tag' class. + * + * + * @generated + * @ordered + */ + int TAG_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.AbstractContentImpl Abstract Content}' class. + * + * + * @see rba.core.impl.AbstractContentImpl + * @see rba.core.impl.RBACorePackageImpl#getAbstractContent() + * @generated + */ + int ABSTRACT_CONTENT = 11; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONTENT__DESCRIPTION = RULE_OBJECT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONTENT__NAME = RULE_OBJECT__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONTENT__TAGS = RULE_OBJECT__TAGS; + + /** + * The feature id for the 'Content Group' reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONTENT__CONTENT_GROUP = RULE_OBJECT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Allocatable' reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONTENT__ALLOCATABLE = RULE_OBJECT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Abstract Content' class. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONTENT_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONTENT___GET_EXPRESSION_TYPE = RULE_OBJECT___GET_EXPRESSION_TYPE; + + /** + * The operation id for the 'Get Allocatable List' operation. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONTENT___GET_ALLOCATABLE_LIST = RULE_OBJECT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Collect Leaf Contents' operation. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONTENT___COLLECT_LEAF_CONTENTS = RULE_OBJECT_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Abstract Content' class. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONTENT_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.AbstractSceneImpl Abstract Scene}' class. + * + * + * @see rba.core.impl.AbstractSceneImpl + * @see rba.core.impl.RBACorePackageImpl#getAbstractScene() + * @generated + */ + int ABSTRACT_SCENE = 12; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACT_SCENE__DESCRIPTION = RULE_OBJECT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACT_SCENE__NAME = RULE_OBJECT__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACT_SCENE__TAGS = RULE_OBJECT__TAGS; + + /** + * The number of structural features of the 'Abstract Scene' class. + * + * + * @generated + * @ordered + */ + int ABSTRACT_SCENE_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int ABSTRACT_SCENE___GET_EXPRESSION_TYPE = RULE_OBJECT___GET_EXPRESSION_TYPE; + + /** + * The number of operations of the 'Abstract Scene' class. + * + * + * @generated + * @ordered + */ + int ABSTRACT_SCENE_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.SceneImpl Scene}' class. + * + * + * @see rba.core.impl.SceneImpl + * @see rba.core.impl.RBACorePackageImpl#getScene() + * @generated + */ + int SCENE = 13; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int SCENE__DESCRIPTION = ABSTRACT_SCENE__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SCENE__NAME = ABSTRACT_SCENE__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int SCENE__TAGS = ABSTRACT_SCENE__TAGS; + + /** + * The feature id for the 'Global' attribute. + * + * + * @generated + * @ordered + */ + int SCENE__GLOBAL = ABSTRACT_SCENE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Properties' containment reference list. + * + * + * @generated + * @ordered + */ + int SCENE__PROPERTIES = ABSTRACT_SCENE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Scene' class. + * + * + * @generated + * @ordered + */ + int SCENE_FEATURE_COUNT = ABSTRACT_SCENE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int SCENE___GET_EXPRESSION_TYPE = ABSTRACT_SCENE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Scene' class. + * + * + * @generated + * @ordered + */ + int SCENE_OPERATION_COUNT = ABSTRACT_SCENE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.ContentImpl Content}' class. + * + * + * @see rba.core.impl.ContentImpl + * @see rba.core.impl.RBACorePackageImpl#getContent() + * @generated + */ + int CONTENT = 14; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT__DESCRIPTION = ABSTRACT_CONTENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT__NAME = ABSTRACT_CONTENT__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT__TAGS = ABSTRACT_CONTENT__TAGS; + + /** + * The feature id for the 'Content Group' reference list. + * + * + * @generated + * @ordered + */ + int CONTENT__CONTENT_GROUP = ABSTRACT_CONTENT__CONTENT_GROUP; + + /** + * The feature id for the 'Allocatable' reference list. + * + * + * @generated + * @ordered + */ + int CONTENT__ALLOCATABLE = ABSTRACT_CONTENT__ALLOCATABLE; + + /** + * The feature id for the 'Loser Type' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT__LOSER_TYPE = ABSTRACT_CONTENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'States' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT__STATES = ABSTRACT_CONTENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Content' class. + * + * + * @generated + * @ordered + */ + int CONTENT_FEATURE_COUNT = ABSTRACT_CONTENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int CONTENT___GET_EXPRESSION_TYPE = ABSTRACT_CONTENT___GET_EXPRESSION_TYPE; + + /** + * The operation id for the 'Get Allocatable List' operation. + * + * + * @generated + * @ordered + */ + int CONTENT___GET_ALLOCATABLE_LIST = ABSTRACT_CONTENT___GET_ALLOCATABLE_LIST; + + /** + * The operation id for the 'Collect Leaf Contents' operation. + * + * + * @generated + * @ordered + */ + int CONTENT___COLLECT_LEAF_CONTENTS = ABSTRACT_CONTENT_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Content' class. + * + * + * @generated + * @ordered + */ + int CONTENT_OPERATION_COUNT = ABSTRACT_CONTENT_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.ContentSetImpl Content Set}' class. + * + * + * @see rba.core.impl.ContentSetImpl + * @see rba.core.impl.RBACorePackageImpl#getContentSet() + * @generated + */ + int CONTENT_SET = 15; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT_SET__DESCRIPTION = ABSTRACT_CONTENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT_SET__NAME = ABSTRACT_CONTENT__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_SET__TAGS = ABSTRACT_CONTENT__TAGS; + + /** + * The feature id for the 'Content Group' reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_SET__CONTENT_GROUP = ABSTRACT_CONTENT__CONTENT_GROUP; + + /** + * The feature id for the 'Allocatable' reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_SET__ALLOCATABLE = ABSTRACT_CONTENT__ALLOCATABLE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_SET__TARGET = ABSTRACT_CONTENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Content Set' class. + * + * + * @generated + * @ordered + */ + int CONTENT_SET_FEATURE_COUNT = ABSTRACT_CONTENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_SET___GET_EXPRESSION_TYPE = ABSTRACT_CONTENT___GET_EXPRESSION_TYPE; + + /** + * The operation id for the 'Get Allocatable List' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_SET___GET_ALLOCATABLE_LIST = ABSTRACT_CONTENT___GET_ALLOCATABLE_LIST; + + /** + * The operation id for the 'Collect Leaf Contents' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_SET___COLLECT_LEAF_CONTENTS = ABSTRACT_CONTENT_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Content Set' class. + * + * + * @generated + * @ordered + */ + int CONTENT_SET_OPERATION_COUNT = ABSTRACT_CONTENT_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.ContentStateImpl Content State}' class. + * + * + * @see rba.core.impl.ContentStateImpl + * @see rba.core.impl.RBACorePackageImpl#getContentState() + * @generated + */ + int CONTENT_STATE = 16; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE__DESCRIPTION = RULE_OBJECT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE__NAME = RULE_OBJECT__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE__TAGS = RULE_OBJECT__TAGS; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE__VALUE = RULE_OBJECT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owner' container reference. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE__OWNER = RULE_OBJECT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Content State' class. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE___GET_EXPRESSION_TYPE = RULE_OBJECT___GET_EXPRESSION_TYPE; + + /** + * The number of operations of the 'Content State' class. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.AbstractPropertyImpl Abstract Property}' class. + * + * + * @see rba.core.impl.AbstractPropertyImpl + * @see rba.core.impl.RBACorePackageImpl#getAbstractProperty() + * @generated + */ + int ABSTRACT_PROPERTY = 17; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACT_PROPERTY__DESCRIPTION = RULE_OBJECT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACT_PROPERTY__NAME = RULE_OBJECT__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACT_PROPERTY__TAGS = RULE_OBJECT__TAGS; + + /** + * The feature id for the 'Owner' container reference. + * + * + * @generated + * @ordered + */ + int ABSTRACT_PROPERTY__OWNER = RULE_OBJECT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Abstract Property' class. + * + * + * @generated + * @ordered + */ + int ABSTRACT_PROPERTY_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int ABSTRACT_PROPERTY___GET_EXPRESSION_TYPE = RULE_OBJECT_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Abstract Property' class. + * + * + * @generated + * @ordered + */ + int ABSTRACT_PROPERTY_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.IntegerPropertyImpl Integer Property}' class. + * + * + * @see rba.core.impl.IntegerPropertyImpl + * @see rba.core.impl.RBACorePackageImpl#getIntegerProperty() + * @generated + */ + int INTEGER_PROPERTY = 18; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int INTEGER_PROPERTY__DESCRIPTION = ABSTRACT_PROPERTY__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTEGER_PROPERTY__NAME = ABSTRACT_PROPERTY__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int INTEGER_PROPERTY__TAGS = ABSTRACT_PROPERTY__TAGS; + + /** + * The feature id for the 'Owner' container reference. + * + * + * @generated + * @ordered + */ + int INTEGER_PROPERTY__OWNER = ABSTRACT_PROPERTY__OWNER; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int INTEGER_PROPERTY__VALUE = ABSTRACT_PROPERTY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Integer Property' class. + * + * + * @generated + * @ordered + */ + int INTEGER_PROPERTY_FEATURE_COUNT = ABSTRACT_PROPERTY_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int INTEGER_PROPERTY___GET_EXPRESSION_TYPE = ABSTRACT_PROPERTY___GET_EXPRESSION_TYPE; + + /** + * The number of operations of the 'Integer Property' class. + * + * + * @generated + * @ordered + */ + int INTEGER_PROPERTY_OPERATION_COUNT = ABSTRACT_PROPERTY_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.AbstractConstraintImpl Abstract Constraint}' class. + * + * + * @see rba.core.impl.AbstractConstraintImpl + * @see rba.core.impl.RBACorePackageImpl#getAbstractConstraint() + * @generated + */ + int ABSTRACT_CONSTRAINT = 19; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONSTRAINT__DESCRIPTION = PACKAGABLE_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONSTRAINT__NAME = PACKAGABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONSTRAINT__EXPRESSION = PACKAGABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Abstract Constraint' class. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONSTRAINT_FEATURE_COUNT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Abstract Constraint' class. + * + * + * @generated + * @ordered + */ + int ABSTRACT_CONSTRAINT_OPERATION_COUNT = PACKAGABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.ConstraintImpl Constraint}' class. + * + * + * @see rba.core.impl.ConstraintImpl + * @see rba.core.impl.RBACorePackageImpl#getConstraint() + * @generated + */ + int CONSTRAINT = 20; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__DESCRIPTION = ABSTRACT_CONSTRAINT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__NAME = ABSTRACT_CONSTRAINT__NAME; + + /** + * The feature id for the 'Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__EXPRESSION = ABSTRACT_CONSTRAINT__EXPRESSION; + + /** + * The feature id for the 'Runtime' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__RUNTIME = ABSTRACT_CONSTRAINT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Constraint' class. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_FEATURE_COUNT = ABSTRACT_CONSTRAINT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Constraint' class. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_OPERATION_COUNT = ABSTRACT_CONSTRAINT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.ExpressionImpl Expression}' class. + * + * + * @see rba.core.impl.ExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getExpression() + * @generated + */ + int EXPRESSION = 21; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__TYPE = 0; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__EXPRESSION = 1; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__LET_STATEMENTS = 2; + + /** + * The number of structural features of the 'Expression' class. + * + * + * @generated + * @ordered + */ + int EXPRESSION_FEATURE_COUNT = 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___GET_UNDERLYING_TYPE = 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___GET_EXPRESSION_TEXT = 1; + + /** + * The number of operations of the 'Expression' class. + * + * + * @generated + * @ordered + */ + int EXPRESSION_OPERATION_COUNT = 2; + + /** + * The meta object id for the '{@link rba.core.impl.LetStatementImpl Let Statement}' class. + * + * + * @see rba.core.impl.LetStatementImpl + * @see rba.core.impl.RBACorePackageImpl#getLetStatement() + * @generated + */ + int LET_STATEMENT = 22; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int LET_STATEMENT__DESCRIPTION = MODEL_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Variable' containment reference. + * + * + * @generated + * @ordered + */ + int LET_STATEMENT__VARIABLE = MODEL_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Body' containment reference. + * + * + * @generated + * @ordered + */ + int LET_STATEMENT__BODY = MODEL_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Let Statement' class. + * + * + * @generated + * @ordered + */ + int LET_STATEMENT_FEATURE_COUNT = MODEL_ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'To String' operation. + * + * + * @generated + * @ordered + */ + int LET_STATEMENT___TO_STRING = MODEL_ELEMENT_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Let Statement' class. + * + * + * @generated + * @ordered + */ + int LET_STATEMENT_OPERATION_COUNT = MODEL_ELEMENT_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.ComplexExpressionImpl Complex Expression}' class. + * + * + * @see rba.core.impl.ComplexExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getComplexExpression() + * @generated + */ + int COMPLEX_EXPRESSION = 23; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int COMPLEX_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int COMPLEX_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPLEX_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS; + + /** + * The feature id for the 'Other Expression' containment reference. + * + * + * @generated + * @ordered + */ + int COMPLEX_EXPRESSION__OTHER_EXPRESSION = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Complex Expression' class. + * + * + * @generated + * @ordered + */ + int COMPLEX_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int COMPLEX_EXPRESSION___GET_EXPANDED = EXPRESSION_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int COMPLEX_EXPRESSION___CAN_EXPAND = EXPRESSION_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int COMPLEX_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int COMPLEX_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Get Type' operation. + * + * + * @generated + * @ordered + */ + int COMPLEX_EXPRESSION___GET_TYPE = EXPRESSION_OPERATION_COUNT + 5; + + /** + * The number of operations of the 'Complex Expression' class. + * + * + * @generated + * @ordered + */ + int COMPLEX_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 6; + + /** + * The meta object id for the '{@link rba.core.impl.OperatorImpl Operator}' class. + * + * + * @see rba.core.impl.OperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getOperator() + * @generated + */ + int OPERATOR = 24; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR__EXPRESSION = EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR__OPERAND = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Operator' class. + * + * + * @generated + * @ordered + */ + int OPERATOR_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR___GET_UNDERLYING_TYPE = EXPRESSION___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR___GET_EXPRESSION_TEXT = EXPRESSION___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR___GET_SYMBOL = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Operator' class. + * + * + * @generated + * @ordered + */ + int OPERATOR_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.IsTypeOfImpl Is Type Of}' class. + * + * + * @see rba.core.impl.IsTypeOfImpl + * @see rba.core.impl.RBACorePackageImpl#getIsTypeOf() + * @generated + */ + int IS_TYPE_OF = 25; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_TYPE_OF__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_TYPE_OF__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_TYPE_OF__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_TYPE_OF__OPERAND = OPERATOR__OPERAND; + + /** + * The feature id for the 'Tag Name' attribute. + * + * + * @generated + * @ordered + */ + int IS_TYPE_OF__TAG_NAME = OPERATOR_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Is Type Of' class. + * + * + * @generated + * @ordered + */ + int IS_TYPE_OF_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_TYPE_OF___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_TYPE_OF___GET_SYMBOL = OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_TYPE_OF___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Is Type Of' class. + * + * + * @generated + * @ordered + */ + int IS_TYPE_OF_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.ObjectReferenceImpl Object Reference}' class. + * + * + * @see rba.core.impl.ObjectReferenceImpl + * @see rba.core.impl.RBACorePackageImpl#getObjectReference() + * @generated + */ + int OBJECT_REFERENCE = 26; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_REFERENCE__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_REFERENCE__EXPRESSION = EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_REFERENCE__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS; + + /** + * The feature id for the 'Ref Object' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_REFERENCE__REF_OBJECT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Object Reference' class. + * + * + * @generated + * @ordered + */ + int OBJECT_REFERENCE_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int OBJECT_REFERENCE___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int OBJECT_REFERENCE___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Object Reference' class. + * + * + * @generated + * @ordered + */ + int OBJECT_REFERENCE_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.PreviousModifierImpl Previous Modifier}' class. + * + * + * @see rba.core.impl.PreviousModifierImpl + * @see rba.core.impl.RBACorePackageImpl#getPreviousModifier() + * @generated + */ + int PREVIOUS_MODIFIER = 27; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int PREVIOUS_MODIFIER__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int PREVIOUS_MODIFIER__EXPRESSION = EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int PREVIOUS_MODIFIER__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS; + + /** + * The feature id for the 'Obj Reference' containment reference. + * + * + * @generated + * @ordered + */ + int PREVIOUS_MODIFIER__OBJ_REFERENCE = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Previous Modifier' class. + * + * + * @generated + * @ordered + */ + int PREVIOUS_MODIFIER_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int PREVIOUS_MODIFIER___GET_SYMBOL = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int PREVIOUS_MODIFIER___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int PREVIOUS_MODIFIER___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Previous Modifier' class. + * + * + * @generated + * @ordered + */ + int PREVIOUS_MODIFIER_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.ComparisonOperatorImpl Comparison Operator}' class. + * + * + * @see rba.core.impl.ComparisonOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getComparisonOperator() + * @generated + */ + int COMPARISON_OPERATOR = 31; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int COMPARISON_OPERATOR__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int COMPARISON_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPARISON_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPARISON_OPERATOR__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Comparison Operator' class. + * + * + * @generated + * @ordered + */ + int COMPARISON_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int COMPARISON_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int COMPARISON_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int COMPARISON_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Comparison Operator' class. + * + * + * @generated + * @ordered + */ + int COMPARISON_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.GreaterThanOperatorImpl Greater Than Operator}' class. + * + * + * @see rba.core.impl.GreaterThanOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getGreaterThanOperator() + * @generated + */ + int GREATER_THAN_OPERATOR = 28; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int GREATER_THAN_OPERATOR__TYPE = COMPARISON_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int GREATER_THAN_OPERATOR__EXPRESSION = COMPARISON_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int GREATER_THAN_OPERATOR__LET_STATEMENTS = COMPARISON_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int GREATER_THAN_OPERATOR__OPERAND = COMPARISON_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Greater Than Operator' class. + * + * + * @generated + * @ordered + */ + int GREATER_THAN_OPERATOR_FEATURE_COUNT = COMPARISON_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int GREATER_THAN_OPERATOR___GET_UNDERLYING_TYPE = COMPARISON_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int GREATER_THAN_OPERATOR___GET_EXPRESSION_TEXT = COMPARISON_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int GREATER_THAN_OPERATOR___GET_SYMBOL = COMPARISON_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Greater Than Operator' class. + * + * + * @generated + * @ordered + */ + int GREATER_THAN_OPERATOR_OPERATION_COUNT = COMPARISON_OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.MuchGreaterThanOperatorImpl Much Greater Than Operator}' class. + * + * + * @see rba.core.impl.MuchGreaterThanOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getMuchGreaterThanOperator() + * @generated + */ + int MUCH_GREATER_THAN_OPERATOR = 29; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int MUCH_GREATER_THAN_OPERATOR__TYPE = COMPARISON_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int MUCH_GREATER_THAN_OPERATOR__EXPRESSION = COMPARISON_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int MUCH_GREATER_THAN_OPERATOR__LET_STATEMENTS = COMPARISON_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int MUCH_GREATER_THAN_OPERATOR__OPERAND = COMPARISON_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Much Greater Than Operator' class. + * + * + * @generated + * @ordered + */ + int MUCH_GREATER_THAN_OPERATOR_FEATURE_COUNT = COMPARISON_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int MUCH_GREATER_THAN_OPERATOR___GET_UNDERLYING_TYPE = COMPARISON_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int MUCH_GREATER_THAN_OPERATOR___GET_EXPRESSION_TEXT = COMPARISON_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int MUCH_GREATER_THAN_OPERATOR___GET_SYMBOL = COMPARISON_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Much Greater Than Operator' class. + * + * + * @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 Lower Than Operator}' class. + * + * + * @see rba.core.impl.LowerThanOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getLowerThanOperator() + * @generated + */ + int LOWER_THAN_OPERATOR = 30; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int LOWER_THAN_OPERATOR__TYPE = COMPARISON_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int LOWER_THAN_OPERATOR__EXPRESSION = COMPARISON_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int LOWER_THAN_OPERATOR__LET_STATEMENTS = COMPARISON_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int LOWER_THAN_OPERATOR__OPERAND = COMPARISON_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Lower Than Operator' class. + * + * + * @generated + * @ordered + */ + int LOWER_THAN_OPERATOR_FEATURE_COUNT = COMPARISON_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int LOWER_THAN_OPERATOR___GET_UNDERLYING_TYPE = COMPARISON_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int LOWER_THAN_OPERATOR___GET_EXPRESSION_TEXT = COMPARISON_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int LOWER_THAN_OPERATOR___GET_SYMBOL = COMPARISON_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Lower Than Operator' class. + * + * + * @generated + * @ordered + */ + int LOWER_THAN_OPERATOR_OPERATION_COUNT = COMPARISON_OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.EqualToOperatorImpl Equal To Operator}' class. + * + * + * @see rba.core.impl.EqualToOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getEqualToOperator() + * @generated + */ + int EQUAL_TO_OPERATOR = 32; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int EQUAL_TO_OPERATOR__TYPE = COMPARISON_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int EQUAL_TO_OPERATOR__EXPRESSION = COMPARISON_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int EQUAL_TO_OPERATOR__LET_STATEMENTS = COMPARISON_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int EQUAL_TO_OPERATOR__OPERAND = COMPARISON_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Equal To Operator' class. + * + * + * @generated + * @ordered + */ + int EQUAL_TO_OPERATOR_FEATURE_COUNT = COMPARISON_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int EQUAL_TO_OPERATOR___GET_UNDERLYING_TYPE = COMPARISON_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int EQUAL_TO_OPERATOR___GET_EXPRESSION_TEXT = COMPARISON_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int EQUAL_TO_OPERATOR___GET_SYMBOL = COMPARISON_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Equal To Operator' class. + * + * + * @generated + * @ordered + */ + int EQUAL_TO_OPERATOR_OPERATION_COUNT = COMPARISON_OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.ComparisonAndImpl Comparison And}' class. + * + * + * @see rba.core.impl.ComparisonAndImpl + * @see rba.core.impl.RBACorePackageImpl#getComparisonAnd() + * @generated + */ + int COMPARISON_AND = 33; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int COMPARISON_AND__TYPE = COMPARISON_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int COMPARISON_AND__EXPRESSION = COMPARISON_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPARISON_AND__LET_STATEMENTS = COMPARISON_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPARISON_AND__OPERAND = COMPARISON_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Comparison And' class. + * + * + * @generated + * @ordered + */ + int COMPARISON_AND_FEATURE_COUNT = COMPARISON_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int COMPARISON_AND___GET_UNDERLYING_TYPE = COMPARISON_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int COMPARISON_AND___GET_SYMBOL = COMPARISON_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int COMPARISON_AND___GET_EXPRESSION_TEXT = COMPARISON_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Comparison And' class. + * + * + * @generated + * @ordered + */ + int COMPARISON_AND_OPERATION_COUNT = COMPARISON_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.LogicalOperatorImpl Logical Operator}' class. + * + * + * @see rba.core.impl.LogicalOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getLogicalOperator() + * @generated + */ + int LOGICAL_OPERATOR = 34; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int LOGICAL_OPERATOR__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int LOGICAL_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int LOGICAL_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int LOGICAL_OPERATOR__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Logical Operator' class. + * + * + * @generated + * @ordered + */ + int LOGICAL_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int LOGICAL_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int LOGICAL_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int LOGICAL_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Logical Operator' class. + * + * + * @generated + * @ordered + */ + int LOGICAL_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.AndOperatorImpl And Operator}' class. + * + * + * @see rba.core.impl.AndOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getAndOperator() + * @generated + */ + int AND_OPERATOR = 35; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int AND_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int AND_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int AND_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int AND_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'And Operator' class. + * + * + * @generated + * @ordered + */ + int AND_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int AND_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int AND_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int AND_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'And Operator' class. + * + * + * @generated + * @ordered + */ + int AND_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.OrOperatorImpl Or Operator}' class. + * + * + * @see rba.core.impl.OrOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getOrOperator() + * @generated + */ + int OR_OPERATOR = 36; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int OR_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int OR_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int OR_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int OR_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Or Operator' class. + * + * + * @generated + * @ordered + */ + int OR_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int OR_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int OR_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int OR_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Or Operator' class. + * + * + * @generated + * @ordered + */ + int OR_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.NotOperatorImpl Not Operator}' class. + * + * + * @see rba.core.impl.NotOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getNotOperator() + * @generated + */ + int NOT_OPERATOR = 37; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int NOT_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int NOT_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int NOT_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int NOT_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Not Operator' class. + * + * + * @generated + * @ordered + */ + int NOT_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int NOT_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int NOT_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int NOT_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Not Operator' class. + * + * + * @generated + * @ordered + */ + int NOT_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.IsEqualToOperatorImpl Is Equal To Operator}' class. + * + * + * @see rba.core.impl.IsEqualToOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getIsEqualToOperator() + * @generated + */ + int IS_EQUAL_TO_OPERATOR = 38; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_EQUAL_TO_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_EQUAL_TO_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_EQUAL_TO_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_EQUAL_TO_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Equal To Operator' class. + * + * + * @generated + * @ordered + */ + int IS_EQUAL_TO_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_EQUAL_TO_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_EQUAL_TO_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_EQUAL_TO_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Is Equal To Operator' class. + * + * + * @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 Is Greater Than Operator}' class. + * + * + * @see rba.core.impl.IsGreaterThanOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getIsGreaterThanOperator() + * @generated + */ + int IS_GREATER_THAN_OPERATOR = 39; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Greater Than Operator' class. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Is Greater Than Operator' class. + * + * + * @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 Is Lower Than Operator}' class. + * + * + * @see rba.core.impl.IsLowerThanOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getIsLowerThanOperator() + * @generated + */ + int IS_LOWER_THAN_OPERATOR = 40; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Lower Than Operator' class. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Is Lower Than Operator' class. + * + * + * @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 Is Greater Than Equal Operator}' class. + * + * + * @see rba.core.impl.IsGreaterThanEqualOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getIsGreaterThanEqualOperator() + * @generated + */ + int IS_GREATER_THAN_EQUAL_OPERATOR = 41; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_EQUAL_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_EQUAL_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_EQUAL_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_EQUAL_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Greater Than Equal Operator' class. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_EQUAL_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_EQUAL_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_EQUAL_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_GREATER_THAN_EQUAL_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Is Greater Than Equal Operator' class. + * + * + * @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 Is Lower Than Equal Operator}' class. + * + * + * @see rba.core.impl.IsLowerThanEqualOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getIsLowerThanEqualOperator() + * @generated + */ + int IS_LOWER_THAN_EQUAL_OPERATOR = 42; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_EQUAL_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_EQUAL_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_EQUAL_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_EQUAL_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Lower Than Equal Operator' class. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_EQUAL_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_EQUAL_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_EQUAL_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_LOWER_THAN_EQUAL_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Is Lower Than Equal Operator' class. + * + * + * @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 Arithmetic Operator}' class. + * + * + * @see rba.core.impl.ArithmeticOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getArithmeticOperator() + * @generated + */ + int ARITHMETIC_OPERATOR = 43; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ARITHMETIC_OPERATOR__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ARITHMETIC_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ARITHMETIC_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int ARITHMETIC_OPERATOR__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Arithmetic Operator' class. + * + * + * @generated + * @ordered + */ + int ARITHMETIC_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int ARITHMETIC_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ARITHMETIC_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ARITHMETIC_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Arithmetic Operator' class. + * + * + * @generated + * @ordered + */ + int ARITHMETIC_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.PlusOperatorImpl Plus Operator}' class. + * + * + * @see rba.core.impl.PlusOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getPlusOperator() + * @generated + */ + int PLUS_OPERATOR = 44; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int PLUS_OPERATOR__TYPE = ARITHMETIC_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int PLUS_OPERATOR__EXPRESSION = ARITHMETIC_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int PLUS_OPERATOR__LET_STATEMENTS = ARITHMETIC_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int PLUS_OPERATOR__OPERAND = ARITHMETIC_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Plus Operator' class. + * + * + * @generated + * @ordered + */ + int PLUS_OPERATOR_FEATURE_COUNT = ARITHMETIC_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int PLUS_OPERATOR___GET_UNDERLYING_TYPE = ARITHMETIC_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int PLUS_OPERATOR___GET_EXPRESSION_TEXT = ARITHMETIC_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int PLUS_OPERATOR___GET_SYMBOL = ARITHMETIC_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Plus Operator' class. + * + * + * @generated + * @ordered + */ + int PLUS_OPERATOR_OPERATION_COUNT = ARITHMETIC_OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.ImpliesOperatorImpl Implies Operator}' class. + * + * + * @see rba.core.impl.ImpliesOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getImpliesOperator() + * @generated + */ + int IMPLIES_OPERATOR = 45; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IMPLIES_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IMPLIES_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IMPLIES_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IMPLIES_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Implies Operator' class. + * + * + * @generated + * @ordered + */ + int IMPLIES_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IMPLIES_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IMPLIES_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IMPLIES_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Implies Operator' class. + * + * + * @generated + * @ordered + */ + int IMPLIES_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.ContentOperatorImpl Content Operator}' class. + * + * + * @see rba.core.impl.ContentOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getContentOperator() + * @generated + */ + int CONTENT_OPERATOR = 46; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT_OPERATOR__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_OPERATOR__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Content Operator' class. + * + * + * @generated + * @ordered + */ + int CONTENT_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Content Operator' class. + * + * + * @generated + * @ordered + */ + int CONTENT_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.IsActiveImpl Is Active}' class. + * + * + * @see rba.core.impl.IsActiveImpl + * @see rba.core.impl.RBACorePackageImpl#getIsActive() + * @generated + */ + int IS_ACTIVE = 47; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_ACTIVE__TYPE = CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_ACTIVE__EXPRESSION = CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_ACTIVE__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_ACTIVE__OPERAND = CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Active' class. + * + * + * @generated + * @ordered + */ + int IS_ACTIVE_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_ACTIVE___GET_EXPRESSION_TEXT = CONTENT_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_ACTIVE___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_ACTIVE___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Is Active' class. + * + * + * @generated + * @ordered + */ + int IS_ACTIVE_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.GetAllocatablesImpl Get Allocatables}' class. + * + * + * @see rba.core.impl.GetAllocatablesImpl + * @see rba.core.impl.RBACorePackageImpl#getGetAllocatables() + * @generated + */ + int GET_ALLOCATABLES = 48; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int GET_ALLOCATABLES__TYPE = CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int GET_ALLOCATABLES__EXPRESSION = CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int GET_ALLOCATABLES__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int GET_ALLOCATABLES__OPERAND = CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Get Allocatables' class. + * + * + * @generated + * @ordered + */ + int GET_ALLOCATABLES_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int GET_ALLOCATABLES___GET_EXPRESSION_TEXT = CONTENT_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int GET_ALLOCATABLES___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int GET_ALLOCATABLES___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Get Allocatables' class. + * + * + * @generated + * @ordered + */ + int GET_ALLOCATABLES_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.HasBeenDisplayedImpl Has Been Displayed}' class. + * + * + * @see rba.core.impl.HasBeenDisplayedImpl + * @see rba.core.impl.RBACorePackageImpl#getHasBeenDisplayed() + * @generated + */ + int HAS_BEEN_DISPLAYED = 49; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int HAS_BEEN_DISPLAYED__TYPE = CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int HAS_BEEN_DISPLAYED__EXPRESSION = CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int HAS_BEEN_DISPLAYED__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int HAS_BEEN_DISPLAYED__OPERAND = CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Has Been Displayed' class. + * + * + * @generated + * @ordered + */ + int HAS_BEEN_DISPLAYED_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int HAS_BEEN_DISPLAYED___GET_EXPRESSION_TEXT = CONTENT_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int HAS_BEEN_DISPLAYED___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int HAS_BEEN_DISPLAYED___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Has Been Displayed' class. + * + * + * @generated + * @ordered + */ + int HAS_BEEN_DISPLAYED_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.ActiveStateImpl Active State}' class. + * + * + * @see rba.core.impl.ActiveStateImpl + * @see rba.core.impl.RBACorePackageImpl#getActiveState() + * @generated + */ + int ACTIVE_STATE = 50; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVE_STATE__TYPE = CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVE_STATE__EXPRESSION = CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVE_STATE__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVE_STATE__OPERAND = CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Active State' class. + * + * + * @generated + * @ordered + */ + int ACTIVE_STATE_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ACTIVE_STATE___GET_EXPRESSION_TEXT = CONTENT_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int ACTIVE_STATE___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ACTIVE_STATE___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Active State' class. + * + * + * @generated + * @ordered + */ + int ACTIVE_STATE_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.ObjectCompareImpl Object Compare}' class. + * + * + * @see rba.core.impl.ObjectCompareImpl + * @see rba.core.impl.RBACorePackageImpl#getObjectCompare() + * @generated + */ + int OBJECT_COMPARE = 51; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Object Compare' class. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE___GET_SYMBOL = OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Object Compare' class. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.ThatOfOperatorImpl That Of Operator}' class. + * + * + * @see rba.core.impl.ThatOfOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getThatOfOperator() + * @generated + */ + int THAT_OF_OPERATOR = 52; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int THAT_OF_OPERATOR__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int THAT_OF_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int THAT_OF_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int THAT_OF_OPERATOR__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'That Of Operator' class. + * + * + * @generated + * @ordered + */ + int THAT_OF_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int THAT_OF_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int THAT_OF_OPERATOR___GET_SYMBOL = OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int THAT_OF_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'That Of Operator' class. + * + * + * @generated + * @ordered + */ + int THAT_OF_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.ValueExpressionImpl Value Expression}' class. + * + * + * @see rba.core.impl.ValueExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getValueExpression() + * @generated + */ + int VALUE_EXPRESSION = 53; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'Value Expression' class. + * + * + * @generated + * @ordered + */ + int VALUE_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int VALUE_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int VALUE_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Value' operation. + * + * + * @generated + * @ordered + */ + int VALUE_EXPRESSION___GET_EXPRESSION_VALUE = EXPRESSION_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Type' operation. + * + * + * @generated + * @ordered + */ + int VALUE_EXPRESSION___GET_TYPE = EXPRESSION_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Value Expression' class. + * + * + * @generated + * @ordered + */ + int VALUE_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.MaxValueImpl Max Value}' class. + * + * + * @see rba.core.impl.MaxValueImpl + * @see rba.core.impl.RBACorePackageImpl#getMaxValue() + * @generated + */ + int MAX_VALUE = 54; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int MAX_VALUE__TYPE = VALUE_EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int MAX_VALUE__EXPRESSION = VALUE_EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int MAX_VALUE__LET_STATEMENTS = VALUE_EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'Max Value' class. + * + * + * @generated + * @ordered + */ + int MAX_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int MAX_VALUE___GET_UNDERLYING_TYPE = VALUE_EXPRESSION___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Type' operation. + * + * + * @generated + * @ordered + */ + int MAX_VALUE___GET_TYPE = VALUE_EXPRESSION___GET_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int MAX_VALUE___GET_EXPRESSION_TEXT = VALUE_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Value' operation. + * + * + * @generated + * @ordered + */ + int MAX_VALUE___GET_EXPRESSION_VALUE = VALUE_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Max Value' class. + * + * + * @generated + * @ordered + */ + int MAX_VALUE_OPERATION_COUNT = VALUE_EXPRESSION_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.MinValueImpl Min Value}' class. + * + * + * @see rba.core.impl.MinValueImpl + * @see rba.core.impl.RBACorePackageImpl#getMinValue() + * @generated + */ + int MIN_VALUE = 55; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int MIN_VALUE__TYPE = VALUE_EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int MIN_VALUE__EXPRESSION = VALUE_EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int MIN_VALUE__LET_STATEMENTS = VALUE_EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'Min Value' class. + * + * + * @generated + * @ordered + */ + int MIN_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int MIN_VALUE___GET_UNDERLYING_TYPE = VALUE_EXPRESSION___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Type' operation. + * + * + * @generated + * @ordered + */ + int MIN_VALUE___GET_TYPE = VALUE_EXPRESSION___GET_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int MIN_VALUE___GET_EXPRESSION_TEXT = VALUE_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Value' operation. + * + * + * @generated + * @ordered + */ + int MIN_VALUE___GET_EXPRESSION_VALUE = VALUE_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Min Value' class. + * + * + * @generated + * @ordered + */ + int MIN_VALUE_OPERATION_COUNT = VALUE_EXPRESSION_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.NoneValueImpl None Value}' class. + * + * + * @see rba.core.impl.NoneValueImpl + * @see rba.core.impl.RBACorePackageImpl#getNoneValue() + * @generated + */ + int NONE_VALUE = 56; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int NONE_VALUE__TYPE = VALUE_EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int NONE_VALUE__EXPRESSION = VALUE_EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int NONE_VALUE__LET_STATEMENTS = VALUE_EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'None Value' class. + * + * + * @generated + * @ordered + */ + int NONE_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int NONE_VALUE___GET_UNDERLYING_TYPE = VALUE_EXPRESSION___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Type' operation. + * + * + * @generated + * @ordered + */ + int NONE_VALUE___GET_TYPE = VALUE_EXPRESSION___GET_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int NONE_VALUE___GET_EXPRESSION_TEXT = VALUE_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Value' operation. + * + * + * @generated + * @ordered + */ + int NONE_VALUE___GET_EXPRESSION_VALUE = VALUE_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'None Value' class. + * + * + * @generated + * @ordered + */ + int NONE_VALUE_OPERATION_COUNT = VALUE_EXPRESSION_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.StandardValueImpl Standard Value}' class. + * + * + * @see rba.core.impl.StandardValueImpl + * @see rba.core.impl.RBACorePackageImpl#getStandardValue() + * @generated + */ + int STANDARD_VALUE = 57; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int STANDARD_VALUE__TYPE = VALUE_EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int STANDARD_VALUE__EXPRESSION = VALUE_EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int STANDARD_VALUE__LET_STATEMENTS = VALUE_EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'Standard Value' class. + * + * + * @generated + * @ordered + */ + int STANDARD_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int STANDARD_VALUE___GET_UNDERLYING_TYPE = VALUE_EXPRESSION___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Type' operation. + * + * + * @generated + * @ordered + */ + int STANDARD_VALUE___GET_TYPE = VALUE_EXPRESSION___GET_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int STANDARD_VALUE___GET_EXPRESSION_TEXT = VALUE_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Value' operation. + * + * + * @generated + * @ordered + */ + int STANDARD_VALUE___GET_EXPRESSION_VALUE = VALUE_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Standard Value' class. + * + * + * @generated + * @ordered + */ + int STANDARD_VALUE_OPERATION_COUNT = VALUE_EXPRESSION_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.IntegerValueImpl Integer Value}' class. + * + * + * @see rba.core.impl.IntegerValueImpl + * @see rba.core.impl.RBACorePackageImpl#getIntegerValue() + * @generated + */ + int INTEGER_VALUE = 58; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int INTEGER_VALUE__TYPE = VALUE_EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int INTEGER_VALUE__EXPRESSION = VALUE_EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int INTEGER_VALUE__LET_STATEMENTS = VALUE_EXPRESSION__LET_STATEMENTS; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int INTEGER_VALUE__VALUE = VALUE_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Integer Value' class. + * + * + * @generated + * @ordered + */ + int INTEGER_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int INTEGER_VALUE___GET_UNDERLYING_TYPE = VALUE_EXPRESSION___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Type' operation. + * + * + * @generated + * @ordered + */ + int INTEGER_VALUE___GET_TYPE = VALUE_EXPRESSION___GET_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int INTEGER_VALUE___GET_EXPRESSION_TEXT = VALUE_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Value' operation. + * + * + * @generated + * @ordered + */ + int INTEGER_VALUE___GET_EXPRESSION_VALUE = VALUE_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Integer Value' class. + * + * + * @generated + * @ordered + */ + int INTEGER_VALUE_OPERATION_COUNT = VALUE_EXPRESSION_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.EnumExpressionImpl Enum Expression}' class. + * + * + * @see rba.core.impl.EnumExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getEnumExpression() + * @generated + */ + int ENUM_EXPRESSION = 59; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ENUM_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ENUM_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUM_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'Enum Expression' class. + * + * + * @generated + * @ordered + */ + int ENUM_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ENUM_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ENUM_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Value' operation. + * + * + * @generated + * @ordered + */ + int ENUM_EXPRESSION___GET_EXPRESSION_VALUE = EXPRESSION_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Type' operation. + * + * + * @generated + * @ordered + */ + int ENUM_EXPRESSION___GET_TYPE = EXPRESSION_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Enum Expression' class. + * + * + * @generated + * @ordered + */ + int ENUM_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.LoserTypeExpressionImpl Loser Type Expression}' class. + * + * + * @see rba.core.impl.LoserTypeExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getLoserTypeExpression() + * @generated + */ + int LOSER_TYPE_EXPRESSION = 60; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int LOSER_TYPE_EXPRESSION__TYPE = ENUM_EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int LOSER_TYPE_EXPRESSION__EXPRESSION = ENUM_EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int LOSER_TYPE_EXPRESSION__LET_STATEMENTS = ENUM_EXPRESSION__LET_STATEMENTS; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int LOSER_TYPE_EXPRESSION__VALUE = ENUM_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Loser Type Expression' class. + * + * + * @generated + * @ordered + */ + int LOSER_TYPE_EXPRESSION_FEATURE_COUNT = ENUM_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int LOSER_TYPE_EXPRESSION___GET_UNDERLYING_TYPE = ENUM_EXPRESSION___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Type' operation. + * + * + * @generated + * @ordered + */ + int LOSER_TYPE_EXPRESSION___GET_TYPE = ENUM_EXPRESSION___GET_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int LOSER_TYPE_EXPRESSION___GET_EXPRESSION_TEXT = ENUM_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Value' operation. + * + * + * @generated + * @ordered + */ + int LOSER_TYPE_EXPRESSION___GET_EXPRESSION_VALUE = ENUM_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Loser Type Expression' class. + * + * + * @generated + * @ordered + */ + int LOSER_TYPE_EXPRESSION_OPERATION_COUNT = ENUM_EXPRESSION_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.ArbitrationPolicyExpressionImpl Arbitration Policy Expression}' class. + * + * + * @see rba.core.impl.ArbitrationPolicyExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getArbitrationPolicyExpression() + * @generated + */ + int ARBITRATION_POLICY_EXPRESSION = 61; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ARBITRATION_POLICY_EXPRESSION__TYPE = ENUM_EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ARBITRATION_POLICY_EXPRESSION__EXPRESSION = ENUM_EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ARBITRATION_POLICY_EXPRESSION__LET_STATEMENTS = ENUM_EXPRESSION__LET_STATEMENTS; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int ARBITRATION_POLICY_EXPRESSION__VALUE = ENUM_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Arbitration Policy Expression' class. + * + * + * @generated + * @ordered + */ + int ARBITRATION_POLICY_EXPRESSION_FEATURE_COUNT = ENUM_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ARBITRATION_POLICY_EXPRESSION___GET_UNDERLYING_TYPE = ENUM_EXPRESSION___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Type' operation. + * + * + * @generated + * @ordered + */ + int ARBITRATION_POLICY_EXPRESSION___GET_TYPE = ENUM_EXPRESSION___GET_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_TEXT = ENUM_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Value' operation. + * + * + * @generated + * @ordered + */ + int ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_VALUE = ENUM_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Arbitration Policy Expression' class. + * + * + * @generated + * @ordered + */ + int ARBITRATION_POLICY_EXPRESSION_OPERATION_COUNT = ENUM_EXPRESSION_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.SetExpressionImpl Set Expression}' class. + * + * + * @see rba.core.impl.SetExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getSetExpression() + * @generated + */ + int SET_EXPRESSION = 62; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int SET_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int SET_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int SET_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'Set Expression' class. + * + * + * @generated + * @ordered + */ + int SET_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int SET_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int SET_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION___GET_EXPRESSION_TEXT; + + /** + * The number of operations of the 'Set Expression' class. + * + * + * @generated + * @ordered + */ + int SET_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.SetOperatorImpl Set Operator}' class. + * + * + * @see rba.core.impl.SetOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getSetOperator() + * @generated + */ + int SET_OPERATOR = 63; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int SET_OPERATOR__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int SET_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int SET_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int SET_OPERATOR__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Set Operator' class. + * + * + * @generated + * @ordered + */ + int SET_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int SET_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int SET_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int SET_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL; + + /** + * The number of operations of the 'Set Operator' class. + * + * + * @generated + * @ordered + */ + int SET_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.core.impl.SizeOperatorImpl Size Operator}' class. + * + * + * @see rba.core.impl.SizeOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getSizeOperator() + * @generated + */ + int SIZE_OPERATOR = 64; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int SIZE_OPERATOR__TYPE = SET_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int SIZE_OPERATOR__EXPRESSION = SET_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int SIZE_OPERATOR__LET_STATEMENTS = SET_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int SIZE_OPERATOR__OPERAND = SET_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Size Operator' class. + * + * + * @generated + * @ordered + */ + int SIZE_OPERATOR_FEATURE_COUNT = SET_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int SIZE_OPERATOR___GET_EXPRESSION_TEXT = SET_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int SIZE_OPERATOR___GET_SYMBOL = SET_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int SIZE_OPERATOR___GET_UNDERLYING_TYPE = SET_OPERATOR_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Size Operator' class. + * + * + * @generated + * @ordered + */ + int SIZE_OPERATOR_OPERATION_COUNT = SET_OPERATOR_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.LambdaContextImpl Lambda Context}' class. + * + * + * @see rba.core.impl.LambdaContextImpl + * @see rba.core.impl.RBACorePackageImpl#getLambdaContext() + * @generated + */ + int LAMBDA_CONTEXT = 73; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int LAMBDA_CONTEXT__TYPE = SET_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int LAMBDA_CONTEXT__EXPRESSION = SET_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int LAMBDA_CONTEXT__LET_STATEMENTS = SET_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int LAMBDA_CONTEXT__OPERAND = SET_OPERATOR__OPERAND; + + /** + * The feature id for the 'Lambda' containment reference. + * + * + * @generated + * @ordered + */ + int LAMBDA_CONTEXT__LAMBDA = SET_OPERATOR_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Lambda Context' class. + * + * + * @generated + * @ordered + */ + int LAMBDA_CONTEXT_FEATURE_COUNT = SET_OPERATOR_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int LAMBDA_CONTEXT___GET_UNDERLYING_TYPE = SET_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int LAMBDA_CONTEXT___GET_EXPRESSION_TEXT = SET_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int LAMBDA_CONTEXT___GET_SYMBOL = SET_OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Context Type' operation. + * + * + * @generated + * @ordered + */ + int LAMBDA_CONTEXT___GET_CONTEXT_TYPE = SET_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Lambda Context' class. + * + * + * @generated + * @ordered + */ + int LAMBDA_CONTEXT_OPERATION_COUNT = SET_OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.ExistsOperatorImpl Exists Operator}' class. + * + * + * @see rba.core.impl.ExistsOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getExistsOperator() + * @generated + */ + int EXISTS_OPERATOR = 65; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int EXISTS_OPERATOR__TYPE = LAMBDA_CONTEXT__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int EXISTS_OPERATOR__EXPRESSION = LAMBDA_CONTEXT__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int EXISTS_OPERATOR__LET_STATEMENTS = LAMBDA_CONTEXT__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int EXISTS_OPERATOR__OPERAND = LAMBDA_CONTEXT__OPERAND; + + /** + * The feature id for the 'Lambda' containment reference. + * + * + * @generated + * @ordered + */ + int EXISTS_OPERATOR__LAMBDA = LAMBDA_CONTEXT__LAMBDA; + + /** + * The number of structural features of the 'Exists Operator' class. + * + * + * @generated + * @ordered + */ + int EXISTS_OPERATOR_FEATURE_COUNT = LAMBDA_CONTEXT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Context Type' operation. + * + * + * @generated + * @ordered + */ + int EXISTS_OPERATOR___GET_CONTEXT_TYPE = LAMBDA_CONTEXT___GET_CONTEXT_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int EXISTS_OPERATOR___GET_EXPRESSION_TEXT = LAMBDA_CONTEXT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int EXISTS_OPERATOR___GET_SYMBOL = LAMBDA_CONTEXT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int EXISTS_OPERATOR___GET_UNDERLYING_TYPE = LAMBDA_CONTEXT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Exists Operator' class. + * + * + * @generated + * @ordered + */ + int EXISTS_OPERATOR_OPERATION_COUNT = LAMBDA_CONTEXT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.ForAllOperatorImpl For All Operator}' class. + * + * + * @see rba.core.impl.ForAllOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getForAllOperator() + * @generated + */ + int FOR_ALL_OPERATOR = 66; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int FOR_ALL_OPERATOR__TYPE = LAMBDA_CONTEXT__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int FOR_ALL_OPERATOR__EXPRESSION = LAMBDA_CONTEXT__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int FOR_ALL_OPERATOR__LET_STATEMENTS = LAMBDA_CONTEXT__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int FOR_ALL_OPERATOR__OPERAND = LAMBDA_CONTEXT__OPERAND; + + /** + * The feature id for the 'Lambda' containment reference. + * + * + * @generated + * @ordered + */ + int FOR_ALL_OPERATOR__LAMBDA = LAMBDA_CONTEXT__LAMBDA; + + /** + * The number of structural features of the 'For All Operator' class. + * + * + * @generated + * @ordered + */ + int FOR_ALL_OPERATOR_FEATURE_COUNT = LAMBDA_CONTEXT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Context Type' operation. + * + * + * @generated + * @ordered + */ + int FOR_ALL_OPERATOR___GET_CONTEXT_TYPE = LAMBDA_CONTEXT___GET_CONTEXT_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int FOR_ALL_OPERATOR___GET_EXPRESSION_TEXT = LAMBDA_CONTEXT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int FOR_ALL_OPERATOR___GET_SYMBOL = LAMBDA_CONTEXT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int FOR_ALL_OPERATOR___GET_UNDERLYING_TYPE = LAMBDA_CONTEXT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'For All Operator' class. + * + * + * @generated + * @ordered + */ + int FOR_ALL_OPERATOR_OPERATION_COUNT = LAMBDA_CONTEXT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.MaxOperatorImpl Max Operator}' class. + * + * + * @see rba.core.impl.MaxOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getMaxOperator() + * @generated + */ + int MAX_OPERATOR = 67; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int MAX_OPERATOR__TYPE = LAMBDA_CONTEXT__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int MAX_OPERATOR__EXPRESSION = LAMBDA_CONTEXT__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int MAX_OPERATOR__LET_STATEMENTS = LAMBDA_CONTEXT__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int MAX_OPERATOR__OPERAND = LAMBDA_CONTEXT__OPERAND; + + /** + * The feature id for the 'Lambda' containment reference. + * + * + * @generated + * @ordered + */ + int MAX_OPERATOR__LAMBDA = LAMBDA_CONTEXT__LAMBDA; + + /** + * The number of structural features of the 'Max Operator' class. + * + * + * @generated + * @ordered + */ + int MAX_OPERATOR_FEATURE_COUNT = LAMBDA_CONTEXT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Context Type' operation. + * + * + * @generated + * @ordered + */ + int MAX_OPERATOR___GET_CONTEXT_TYPE = LAMBDA_CONTEXT___GET_CONTEXT_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int MAX_OPERATOR___GET_EXPRESSION_TEXT = LAMBDA_CONTEXT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int MAX_OPERATOR___GET_SYMBOL = LAMBDA_CONTEXT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int MAX_OPERATOR___GET_UNDERLYING_TYPE = LAMBDA_CONTEXT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Max Operator' class. + * + * + * @generated + * @ordered + */ + int MAX_OPERATOR_OPERATION_COUNT = LAMBDA_CONTEXT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.MinOperatorImpl Min Operator}' class. + * + * + * @see rba.core.impl.MinOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getMinOperator() + * @generated + */ + int MIN_OPERATOR = 68; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int MIN_OPERATOR__TYPE = LAMBDA_CONTEXT__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int MIN_OPERATOR__EXPRESSION = LAMBDA_CONTEXT__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int MIN_OPERATOR__LET_STATEMENTS = LAMBDA_CONTEXT__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int MIN_OPERATOR__OPERAND = LAMBDA_CONTEXT__OPERAND; + + /** + * The feature id for the 'Lambda' containment reference. + * + * + * @generated + * @ordered + */ + int MIN_OPERATOR__LAMBDA = LAMBDA_CONTEXT__LAMBDA; + + /** + * The number of structural features of the 'Min Operator' class. + * + * + * @generated + * @ordered + */ + int MIN_OPERATOR_FEATURE_COUNT = LAMBDA_CONTEXT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Context Type' operation. + * + * + * @generated + * @ordered + */ + int MIN_OPERATOR___GET_CONTEXT_TYPE = LAMBDA_CONTEXT___GET_CONTEXT_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int MIN_OPERATOR___GET_EXPRESSION_TEXT = LAMBDA_CONTEXT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int MIN_OPERATOR___GET_SYMBOL = LAMBDA_CONTEXT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int MIN_OPERATOR___GET_UNDERLYING_TYPE = LAMBDA_CONTEXT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Min Operator' class. + * + * + * @generated + * @ordered + */ + int MIN_OPERATOR_OPERATION_COUNT = LAMBDA_CONTEXT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.SelectOperatorImpl Select Operator}' class. + * + * + * @see rba.core.impl.SelectOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getSelectOperator() + * @generated + */ + int SELECT_OPERATOR = 69; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_OPERATOR__TYPE = LAMBDA_CONTEXT__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_OPERATOR__EXPRESSION = LAMBDA_CONTEXT__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int SELECT_OPERATOR__LET_STATEMENTS = LAMBDA_CONTEXT__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int SELECT_OPERATOR__OPERAND = LAMBDA_CONTEXT__OPERAND; + + /** + * The feature id for the 'Lambda' containment reference. + * + * + * @generated + * @ordered + */ + int SELECT_OPERATOR__LAMBDA = LAMBDA_CONTEXT__LAMBDA; + + /** + * The number of structural features of the 'Select Operator' class. + * + * + * @generated + * @ordered + */ + int SELECT_OPERATOR_FEATURE_COUNT = LAMBDA_CONTEXT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Context Type' operation. + * + * + * @generated + * @ordered + */ + int SELECT_OPERATOR___GET_CONTEXT_TYPE = LAMBDA_CONTEXT___GET_CONTEXT_TYPE; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int SELECT_OPERATOR___GET_EXPRESSION_TEXT = LAMBDA_CONTEXT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int SELECT_OPERATOR___GET_SYMBOL = LAMBDA_CONTEXT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int SELECT_OPERATOR___GET_UNDERLYING_TYPE = LAMBDA_CONTEXT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Select Operator' class. + * + * + * @generated + * @ordered + */ + int SELECT_OPERATOR_OPERATION_COUNT = LAMBDA_CONTEXT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.SetOfOperatorImpl Set Of Operator}' class. + * + * + * @see rba.core.impl.SetOfOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getSetOfOperator() + * @generated + */ + int SET_OF_OPERATOR = 70; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int SET_OF_OPERATOR__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int SET_OF_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int SET_OF_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int SET_OF_OPERATOR__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Set Of Operator' class. + * + * + * @generated + * @ordered + */ + int SET_OF_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int SET_OF_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int SET_OF_OPERATOR___GET_SYMBOL = OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int SET_OF_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Set Of Operator' class. + * + * + * @generated + * @ordered + */ + int SET_OF_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.impl.LambdaExpressionImpl Lambda Expression}' class. + * + * + * @see rba.core.impl.LambdaExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getLambdaExpression() + * @generated + */ + int LAMBDA_EXPRESSION = 71; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int LAMBDA_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int LAMBDA_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int LAMBDA_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS; + + /** + * The feature id for the 'Context' container reference. + * + * + * @generated + * @ordered + */ + int LAMBDA_EXPRESSION__CONTEXT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'X' containment reference. + * + * + * @generated + * @ordered + */ + int LAMBDA_EXPRESSION__X = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Body Text' containment reference. + * + * + * @generated + * @ordered + */ + int LAMBDA_EXPRESSION__BODY_TEXT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Lambda Expression' class. + * + * + * @generated + * @ordered + */ + int LAMBDA_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int LAMBDA_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int LAMBDA_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Lambda Expression' class. + * + * + * @generated + * @ordered + */ + int LAMBDA_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.VariableImpl Variable}' class. + * + * + * @see rba.core.impl.VariableImpl + * @see rba.core.impl.RBACorePackageImpl#getVariable() + * @generated + */ + int VARIABLE = 72; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__DESCRIPTION = RULE_OBJECT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__NAME = RULE_OBJECT__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE__TAGS = RULE_OBJECT__TAGS; + + /** + * The number of structural features of the 'Variable' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int VARIABLE___GET_EXPRESSION_TYPE = RULE_OBJECT_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Variable' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.IfStatementImpl If Statement}' class. + * + * + * @see rba.core.impl.IfStatementImpl + * @see rba.core.impl.RBACorePackageImpl#getIfStatement() + * @generated + */ + int IF_STATEMENT = 74; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IF_STATEMENT__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IF_STATEMENT__EXPRESSION = EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IF_STATEMENT__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS; + + /** + * The feature id for the 'Condition' containment reference. + * + * + * @generated + * @ordered + */ + int IF_STATEMENT__CONDITION = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Then Expression' containment reference. + * + * + * @generated + * @ordered + */ + int IF_STATEMENT__THEN_EXPRESSION = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Else Expression' containment reference. + * + * + * @generated + * @ordered + */ + int IF_STATEMENT__ELSE_EXPRESSION = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'If Statement' class. + * + * + * @generated + * @ordered + */ + int IF_STATEMENT_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IF_STATEMENT___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IF_STATEMENT___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'If Statement' class. + * + * + * @generated + * @ordered + */ + int IF_STATEMENT_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.SceneOperatorImpl Scene Operator}' class. + * + * + * @see rba.core.impl.SceneOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getSceneOperator() + * @generated + */ + int SCENE_OPERATOR = 75; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int SCENE_OPERATOR__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int SCENE_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int SCENE_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int SCENE_OPERATOR__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Scene Operator' class. + * + * + * @generated + * @ordered + */ + int SCENE_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int SCENE_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int SCENE_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int SCENE_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Scene Operator' class. + * + * + * @generated + * @ordered + */ + int SCENE_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.IsOnImpl Is On}' class. + * + * + * @see rba.core.impl.IsOnImpl + * @see rba.core.impl.RBACorePackageImpl#getIsOn() + * @generated + */ + int IS_ON = 76; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_ON__TYPE = SCENE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_ON__EXPRESSION = SCENE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_ON__LET_STATEMENTS = SCENE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_ON__OPERAND = SCENE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is On' class. + * + * + * @generated + * @ordered + */ + int IS_ON_FEATURE_COUNT = SCENE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_ON___GET_EXPRESSION_TEXT = SCENE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_ON___GET_SYMBOL = SCENE_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_ON___GET_UNDERLYING_TYPE = SCENE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Is On' class. + * + * + * @generated + * @ordered + */ + int IS_ON_OPERATION_COUNT = SCENE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.AllocatableOperatorImpl Allocatable Operator}' class. + * + * + * @see rba.core.impl.AllocatableOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getAllocatableOperator() + * @generated + */ + int ALLOCATABLE_OPERATOR = 77; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_OPERATOR__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_OPERATOR__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Allocatable Operator' class. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Allocatable Operator' class. + * + * + * @generated + * @ordered + */ + int ALLOCATABLE_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.AllocatedContentImpl Allocated Content}' class. + * + * + * @see rba.core.impl.AllocatedContentImpl + * @see rba.core.impl.RBACorePackageImpl#getAllocatedContent() + * @generated + */ + int ALLOCATED_CONTENT = 78; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATED_CONTENT__TYPE = ALLOCATABLE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATED_CONTENT__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATED_CONTENT__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATED_CONTENT__OPERAND = ALLOCATABLE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Allocated Content' class. + * + * + * @generated + * @ordered + */ + int ALLOCATED_CONTENT_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATED_CONTENT___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATED_CONTENT___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATED_CONTENT___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Allocated Content' class. + * + * + * @generated + * @ordered + */ + int ALLOCATED_CONTENT_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.ContentValueImpl Content Value}' class. + * + * + * @see rba.core.impl.ContentValueImpl + * @see rba.core.impl.RBACorePackageImpl#getContentValue() + * @generated + */ + int CONTENT_VALUE = 79; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT_VALUE__TYPE = ALLOCATABLE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT_VALUE__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_VALUE__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_VALUE__OPERAND = ALLOCATABLE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Content Value' class. + * + * + * @generated + * @ordered + */ + int CONTENT_VALUE_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_VALUE___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_VALUE___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_VALUE___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Content Value' class. + * + * + * @generated + * @ordered + */ + int CONTENT_VALUE_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.GetContentsListImpl Get Contents List}' class. + * + * + * @see rba.core.impl.GetContentsListImpl + * @see rba.core.impl.RBACorePackageImpl#getGetContentsList() + * @generated + */ + int GET_CONTENTS_LIST = 80; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int GET_CONTENTS_LIST__TYPE = ALLOCATABLE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int GET_CONTENTS_LIST__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int GET_CONTENTS_LIST__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int GET_CONTENTS_LIST__OPERAND = ALLOCATABLE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Get Contents List' class. + * + * + * @generated + * @ordered + */ + int GET_CONTENTS_LIST_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int GET_CONTENTS_LIST___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int GET_CONTENTS_LIST___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int GET_CONTENTS_LIST___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Get Contents List' class. + * + * + * @generated + * @ordered + */ + int GET_CONTENTS_LIST_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.ActiveContentsImpl Active Contents}' class. + * + * + * @see rba.core.impl.ActiveContentsImpl + * @see rba.core.impl.RBACorePackageImpl#getActiveContents() + * @generated + */ + int ACTIVE_CONTENTS = 81; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVE_CONTENTS__TYPE = ALLOCATABLE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVE_CONTENTS__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVE_CONTENTS__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVE_CONTENTS__OPERAND = ALLOCATABLE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Active Contents' class. + * + * + * @generated + * @ordered + */ + int ACTIVE_CONTENTS_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ACTIVE_CONTENTS___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int ACTIVE_CONTENTS___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ACTIVE_CONTENTS___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Active Contents' class. + * + * + * @generated + * @ordered + */ + int ACTIVE_CONTENTS_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.PropertyOperatorImpl Property Operator}' class. + * + * + * @see rba.core.impl.PropertyOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getPropertyOperator() + * @generated + */ + int PROPERTY_OPERATOR = 82; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY_OPERATOR__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY_OPERATOR__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Property Operator' class. + * + * + * @generated + * @ordered + */ + int PROPERTY_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int PROPERTY_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int PROPERTY_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int PROPERTY_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Property Operator' class. + * + * + * @generated + * @ordered + */ + int PROPERTY_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.GetPropertyImpl Get Property}' class. + * + * + * @see rba.core.impl.GetPropertyImpl + * @see rba.core.impl.RBACorePackageImpl#getGetProperty() + * @generated + */ + int GET_PROPERTY = 83; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int GET_PROPERTY__TYPE = PROPERTY_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int GET_PROPERTY__EXPRESSION = PROPERTY_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int GET_PROPERTY__LET_STATEMENTS = PROPERTY_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int GET_PROPERTY__OPERAND = PROPERTY_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Get Property' class. + * + * + * @generated + * @ordered + */ + int GET_PROPERTY_FEATURE_COUNT = PROPERTY_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int GET_PROPERTY___GET_EXPRESSION_TEXT = PROPERTY_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int GET_PROPERTY___GET_SYMBOL = PROPERTY_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int GET_PROPERTY___GET_UNDERLYING_TYPE = PROPERTY_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Get Property' class. + * + * + * @generated + * @ordered + */ + int GET_PROPERTY_OPERATION_COUNT = PROPERTY_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.StateValueImpl State Value}' class. + * + * + * @see rba.core.impl.StateValueImpl + * @see rba.core.impl.RBACorePackageImpl#getStateValue() + * @generated + */ + int STATE_VALUE = 84; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int STATE_VALUE__TYPE = CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int STATE_VALUE__EXPRESSION = CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_VALUE__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_VALUE__OPERAND = CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'State Value' class. + * + * + * @generated + * @ordered + */ + int STATE_VALUE_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int STATE_VALUE___GET_EXPRESSION_TEXT = CONTENT_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int STATE_VALUE___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int STATE_VALUE___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'State Value' class. + * + * + * @generated + * @ordered + */ + int STATE_VALUE_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.impl.HasComeLaterThanImpl Has Come Later Than}' class. + * + * + * @see rba.core.impl.HasComeLaterThanImpl + * @see rba.core.impl.RBACorePackageImpl#getHasComeLaterThan() + * @generated + */ + int HAS_COME_LATER_THAN = 85; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int HAS_COME_LATER_THAN__TYPE = CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int HAS_COME_LATER_THAN__EXPRESSION = CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int HAS_COME_LATER_THAN__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int HAS_COME_LATER_THAN__OPERAND = CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Has Come Later Than' class. + * + * + * @generated + * @ordered + */ + int HAS_COME_LATER_THAN_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int HAS_COME_LATER_THAN___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int HAS_COME_LATER_THAN___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int HAS_COME_LATER_THAN___GET_EXPRESSION_TEXT = CONTENT_OPERATOR_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Has Come Later Than' class. + * + * + * @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 Has Come Earlier Than}' class. + * + * + * @see rba.core.impl.HasComeEarlierThanImpl + * @see rba.core.impl.RBACorePackageImpl#getHasComeEarlierThan() + * @generated + */ + int HAS_COME_EARLIER_THAN = 86; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int HAS_COME_EARLIER_THAN__TYPE = CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int HAS_COME_EARLIER_THAN__EXPRESSION = CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int HAS_COME_EARLIER_THAN__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int HAS_COME_EARLIER_THAN__OPERAND = CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Has Come Earlier Than' class. + * + * + * @generated + * @ordered + */ + int HAS_COME_EARLIER_THAN_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int HAS_COME_EARLIER_THAN___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int HAS_COME_EARLIER_THAN___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int HAS_COME_EARLIER_THAN___GET_EXPRESSION_TEXT = CONTENT_OPERATOR_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Has Come Earlier Than' class. + * + * + * @generated + * @ordered + */ + int HAS_COME_EARLIER_THAN_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link rba.core.SugarExpression Sugar Expression}' class. + * + * + * @see rba.core.SugarExpression + * @see rba.core.impl.RBACorePackageImpl#getSugarExpression() + * @generated + */ + int SUGAR_EXPRESSION = 87; + + /** + * The number of structural features of the 'Sugar Expression' class. + * + * + * @generated + * @ordered + */ + int SUGAR_EXPRESSION_FEATURE_COUNT = 0; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int SUGAR_EXPRESSION___CAN_EXPAND = 0; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int SUGAR_EXPRESSION___GET_EXPANDED = 1; + + /** + * The number of operations of the 'Sugar Expression' class. + * + * + * @generated + * @ordered + */ + int SUGAR_EXPRESSION_OPERATION_COUNT = 2; + + /** + * The meta object id for the '{@link rba.core.SugarExpressionBase Sugar Expression Base}' class. + * + * + * @see rba.core.SugarExpressionBase + * @see rba.core.impl.RBACorePackageImpl#getSugarExpressionBase() + * @generated + */ + int SUGAR_EXPRESSION_BASE = 88; + + /** + * The number of structural features of the 'Sugar Expression Base' class. + * + * + * @generated + * @ordered + */ + int SUGAR_EXPRESSION_BASE_FEATURE_COUNT = SUGAR_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int SUGAR_EXPRESSION_BASE___GET_EXPANDED = SUGAR_EXPRESSION___GET_EXPANDED; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int SUGAR_EXPRESSION_BASE___CAN_EXPAND = SUGAR_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Sugar Expression Base' class. + * + * + * @generated + * @ordered + */ + int SUGAR_EXPRESSION_BASE_OPERATION_COUNT = SUGAR_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.ObjectCompareNotImpl Object Compare Not}' class. + * + * + * @see rba.core.impl.ObjectCompareNotImpl + * @see rba.core.impl.RBACorePackageImpl#getObjectCompareNot() + * @generated + */ + int OBJECT_COMPARE_NOT = 89; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_NOT__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_NOT__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_NOT__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_NOT__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Object Compare Not' class. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_NOT_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_NOT___GET_EXPANDED = OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_NOT___CAN_EXPAND = OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_NOT___GET_SYMBOL = OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_NOT___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_NOT___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 5; + + /** + * The number of operations of the 'Object Compare Not' class. + * + * + * @generated + * @ordered + */ + int OBJECT_COMPARE_NOT_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 6; + + /** + * The meta object id for the '{@link rba.core.impl.IsAllocatedToImpl Is Allocated To}' class. + * + * + * @see rba.core.impl.IsAllocatedToImpl + * @see rba.core.impl.RBACorePackageImpl#getIsAllocatedTo() + * @generated + */ + int IS_ALLOCATED_TO = 90; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_ALLOCATED_TO__TYPE = CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_ALLOCATED_TO__EXPRESSION = CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_ALLOCATED_TO__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_ALLOCATED_TO__OPERAND = CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Allocated To' class. + * + * + * @generated + * @ordered + */ + int IS_ALLOCATED_TO_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int IS_ALLOCATED_TO___GET_EXPANDED = CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int IS_ALLOCATED_TO___CAN_EXPAND = CONTENT_OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_ALLOCATED_TO___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_ALLOCATED_TO___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_ALLOCATED_TO___GET_EXPRESSION_TEXT = CONTENT_OPERATOR_OPERATION_COUNT + 5; + + /** + * The number of operations of the 'Is Allocated To' class. + * + * + * @generated + * @ordered + */ + int IS_ALLOCATED_TO_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 6; + + /** + * The meta object id for the '{@link rba.core.impl.IsChangedImpl Is Changed}' class. + * + * + * @see rba.core.impl.IsChangedImpl + * @see rba.core.impl.RBACorePackageImpl#getIsChanged() + * @generated + */ + int IS_CHANGED = 91; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_CHANGED__TYPE = ALLOCATABLE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_CHANGED__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_CHANGED__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_CHANGED__OPERAND = ALLOCATABLE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Changed' class. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED___GET_EXPANDED = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED___CAN_EXPAND = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 4; + + /** + * The number of operations of the 'Is Changed' class. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 5; + + /** + * The meta object id for the '{@link rba.core.impl.IsTranslatedToImpl Is Translated To}' class. + * + * + * @see rba.core.impl.IsTranslatedToImpl + * @see rba.core.impl.RBACorePackageImpl#getIsTranslatedTo() + * @generated + */ + int IS_TRANSLATED_TO = 92; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_TO__TYPE = ALLOCATABLE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_TO__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_TO__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_TO__OPERAND = ALLOCATABLE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Translated To' class. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_TO_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_TO___GET_EXPANDED = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_TO___CAN_EXPAND = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_TO___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_TO___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_TO___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 5; + + /** + * The number of operations of the 'Is Translated To' class. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_TO_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 6; + + /** + * The meta object id for the '{@link rba.core.impl.GetStateImpl Get State}' class. + * + * + * @see rba.core.impl.GetStateImpl + * @see rba.core.impl.RBACorePackageImpl#getGetState() + * @generated + */ + int GET_STATE = 93; + + /** + * The number of structural features of the 'Get State' class. + * + * + * @generated + * @ordered + */ + int GET_STATE_FEATURE_COUNT = 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int GET_STATE___GET_SYMBOL = 0; + + /** + * The number of operations of the 'Get State' class. + * + * + * @generated + * @ordered + */ + int GET_STATE_OPERATION_COUNT = 1; + + /** + * The meta object id for the '{@link rba.core.impl.ContentStateOperatorImpl Content State Operator}' class. + * + * + * @see rba.core.impl.ContentStateOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getContentStateOperator() + * @generated + */ + int CONTENT_STATE_OPERATOR = 94; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE_OPERATOR__TYPE = OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE_OPERATOR__OPERAND = OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Content State Operator' class. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Content State Operator' class. + * + * + * @generated + * @ordered + */ + int CONTENT_STATE_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.core.impl.NullExpressionImpl Null Expression}' class. + * + * + * @see rba.core.impl.NullExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getNullExpression() + * @generated + */ + int NULL_EXPRESSION = 95; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'Null Expression' class. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Null Expression' class. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.core.ArbitrationPolicy Arbitration Policy}' enum. + * + * + * @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 Expression Type}' enum. + * + * + * @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 Loser Type}' enum. + * + * + * @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 Model Element}'. + * + * + * @return the meta object for class 'Model Element'. + * @see rba.core.ModelElement + * @generated + */ + EClass getModelElement(); + + /** + * Returns the meta object for the attribute '{@link rba.core.ModelElement#getDescription Description}'. + * + * + * @return the meta object for the attribute 'Description'. + * @see rba.core.ModelElement#getDescription() + * @see #getModelElement() + * @generated + */ + EAttribute getModelElement_Description(); + + /** + * Returns the meta object for class '{@link rba.core.NamedElement Named Element}'. + * + * + * @return the meta object for class 'Named Element'. + * @see rba.core.NamedElement + * @generated + */ + EClass getNamedElement(); + + /** + * Returns the meta object for the attribute '{@link rba.core.NamedElement#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see rba.core.NamedElement#getName() + * @see #getNamedElement() + * @generated + */ + EAttribute getNamedElement_Name(); + + /** + * Returns the meta object for class '{@link rba.core.AbstractAllocatable Abstract Allocatable}'. + * + * + * @return the meta object for class 'Abstract Allocatable'. + * @see rba.core.AbstractAllocatable + * @generated + */ + EClass getAbstractAllocatable(); + + /** + * Returns the meta object for the reference list '{@link rba.core.AbstractAllocatable#getContents Contents}'. + * + * + * @return the meta object for the reference list 'Contents'. + * @see rba.core.AbstractAllocatable#getContents() + * @see #getAbstractAllocatable() + * @generated + */ + EReference getAbstractAllocatable_Contents(); + + /** + * Returns the meta object for the reference list '{@link rba.core.AbstractAllocatable#getAllocatableGroup Allocatable Group}'. + * + * + * @return the meta object for the reference list 'Allocatable Group'. + * @see rba.core.AbstractAllocatable#getAllocatableGroup() + * @see #getAbstractAllocatable() + * @generated + */ + EReference getAbstractAllocatable_AllocatableGroup(); + + /** + * Returns the meta object for the '{@link rba.core.AbstractAllocatable#getContentsList() Get Contents List}' operation. + * + * + * @return the meta object for the 'Get Contents List' operation. + * @see rba.core.AbstractAllocatable#getContentsList() + * @generated + */ + EOperation getAbstractAllocatable__GetContentsList(); + + /** + * Returns the meta object for the '{@link rba.core.AbstractAllocatable#collectLeafAllocatable() Collect Leaf Allocatable}' operation. + * + * + * @return the meta object for the 'Collect Leaf Allocatable' operation. + * @see rba.core.AbstractAllocatable#collectLeafAllocatable() + * @generated + */ + EOperation getAbstractAllocatable__CollectLeafAllocatable(); + + /** + * Returns the meta object for class '{@link rba.core.Allocatable Allocatable}'. + * + * + * @return the meta object for class 'Allocatable'. + * @see rba.core.Allocatable + * @generated + */ + EClass getAllocatable(); + + /** + * Returns the meta object for the attribute '{@link rba.core.Allocatable#getArbitrationPolicy Arbitration Policy}'. + * + * + * @return the meta object for the attribute 'Arbitration Policy'. + * @see rba.core.Allocatable#getArbitrationPolicy() + * @see #getAllocatable() + * @generated + */ + EAttribute getAllocatable_ArbitrationPolicy(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.Allocatable#getVisibility Visibility}'. + * + * + * @return the meta object for the containment reference 'Visibility'. + * @see rba.core.Allocatable#getVisibility() + * @see #getAllocatable() + * @generated + */ + EReference getAllocatable_Visibility(); + + /** + * Returns the meta object for the '{@link rba.core.Allocatable#collectLeafAllocatable() Collect Leaf Allocatable}' operation. + * + * + * @return the meta object for the 'Collect Leaf Allocatable' operation. + * @see rba.core.Allocatable#collectLeafAllocatable() + * @generated + */ + EOperation getAllocatable__CollectLeafAllocatable(); + + /** + * Returns the meta object for class '{@link rba.core.AllocatableSet Allocatable Set}'. + * + * + * @return the meta object for class 'Allocatable Set'. + * @see rba.core.AllocatableSet + * @generated + */ + EClass getAllocatableSet(); + + /** + * Returns the meta object for the reference list '{@link rba.core.AllocatableSet#getTarget Target}'. + * + * + * @return the meta object for the reference list 'Target'. + * @see rba.core.AllocatableSet#getTarget() + * @see #getAllocatableSet() + * @generated + */ + EReference getAllocatableSet_Target(); + + /** + * Returns the meta object for the '{@link rba.core.AllocatableSet#collectLeafAllocatable() Collect Leaf Allocatable}' operation. + * + * + * @return the meta object for the 'Collect Leaf Allocatable' operation. + * @see rba.core.AllocatableSet#collectLeafAllocatable() + * @generated + */ + EOperation getAllocatableSet__CollectLeafAllocatable(); + + /** + * Returns the meta object for class '{@link rba.core.Project Project}'. + * + * + * @return the meta object for class 'Project'. + * @see rba.core.Project + * @generated + */ + EClass getProject(); + + /** + * Returns the meta object for the attribute '{@link rba.core.Project#getVersion Version}'. + * + * + * @return the meta object for the attribute 'Version'. + * @see rba.core.Project#getVersion() + * @see #getProject() + * @generated + */ + EAttribute getProject_Version(); + + /** + * Returns the meta object for the attribute '{@link rba.core.Project#getDummyName Dummy Name}'. + * + * + * @return the meta object for the attribute 'Dummy Name'. + * @see rba.core.Project#getDummyName() + * @see #getProject() + * @generated + */ + EAttribute getProject_DummyName(); + + /** + * Returns the meta object for the '{@link rba.core.Project#getName() Get Name}' operation. + * + * + * @return the meta object for the 'Get Name' operation. + * @see rba.core.Project#getName() + * @generated + */ + EOperation getProject__GetName(); + + /** + * Returns the meta object for class '{@link rba.core.PackagableElement Packagable Element}'. + * + * + * @return the meta object for class 'Packagable Element'. + * @see rba.core.PackagableElement + * @generated + */ + EClass getPackagableElement(); + + /** + * Returns the meta object for class '{@link rba.core.Package Package}'. + * + * + * @return the meta object for class 'Package'. + * @see rba.core.Package + * @generated + */ + EClass getPackage(); + + /** + * Returns the meta object for the containment reference list '{@link rba.core.Package#getPackagableelement Packagableelement}'. + * + * + * @return the meta object for the containment reference list 'Packagableelement'. + * @see rba.core.Package#getPackagableelement() + * @see #getPackage() + * @generated + */ + EReference getPackage_Packagableelement(); + + /** + * Returns the meta object for class '{@link rba.core.Stereotype Stereotype}'. + * + * + * @return the meta object for class 'Stereotype'. + * @see rba.core.Stereotype + * @generated + */ + EClass getStereotype(); + + /** + * Returns the meta object for the attribute '{@link rba.core.Stereotype#getTargetModelName Target Model Name}'. + * + * + * @return the meta object for the attribute 'Target Model Name'. + * @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 Variables}'. + * + * + * @return the meta object for the containment reference list 'Variables'. + * @see rba.core.Stereotype#getVariables() + * @see #getStereotype() + * @generated + */ + EReference getStereotype_Variables(); + + /** + * Returns the meta object for the attribute '{@link rba.core.Stereotype#getBodyText Body Text}'. + * + * + * @return the meta object for the attribute 'Body Text'. + * @see rba.core.Stereotype#getBodyText() + * @see #getStereotype() + * @generated + */ + EAttribute getStereotype_BodyText(); + + /** + * Returns the meta object for class '{@link rba.core.Tag Tag}'. + * + * + * @return the meta object for class 'Tag'. + * @see rba.core.Tag + * @generated + */ + EClass getTag(); + + /** + * Returns the meta object for the attribute list '{@link rba.core.Tag#getValues Values}'. + * + * + * @return the meta object for the attribute list 'Values'. + * @see rba.core.Tag#getValues() + * @see #getTag() + * @generated + */ + EAttribute getTag_Values(); + + /** + * Returns the meta object for class '{@link rba.core.RuleObject Rule Object}'. + * + * + * @return the meta object for class 'Rule Object'. + * @see rba.core.RuleObject + * @generated + */ + EClass getRuleObject(); + + /** + * Returns the meta object for the containment reference list '{@link rba.core.RuleObject#getTags Tags}'. + * + * + * @return the meta object for the containment reference list 'Tags'. + * @see rba.core.RuleObject#getTags() + * @see #getRuleObject() + * @generated + */ + EReference getRuleObject_Tags(); + + /** + * Returns the meta object for the '{@link rba.core.RuleObject#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.core.RuleObject#getExpressionType() + * @generated + */ + EOperation getRuleObject__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.core.AbstractContent Abstract Content}'. + * + * + * @return the meta object for class 'Abstract Content'. + * @see rba.core.AbstractContent + * @generated + */ + EClass getAbstractContent(); + + /** + * Returns the meta object for the reference list '{@link rba.core.AbstractContent#getContentGroup Content Group}'. + * + * + * @return the meta object for the reference list 'Content Group'. + * @see rba.core.AbstractContent#getContentGroup() + * @see #getAbstractContent() + * @generated + */ + EReference getAbstractContent_ContentGroup(); + + /** + * Returns the meta object for the reference list '{@link rba.core.AbstractContent#getAllocatable Allocatable}'. + * + * + * @return the meta object for the reference list 'Allocatable'. + * @see rba.core.AbstractContent#getAllocatable() + * @see #getAbstractContent() + * @generated + */ + EReference getAbstractContent_Allocatable(); + + /** + * Returns the meta object for the '{@link rba.core.AbstractContent#getAllocatableList() Get Allocatable List}' operation. + * + * + * @return the meta object for the 'Get Allocatable List' operation. + * @see rba.core.AbstractContent#getAllocatableList() + * @generated + */ + EOperation getAbstractContent__GetAllocatableList(); + + /** + * Returns the meta object for the '{@link rba.core.AbstractContent#collectLeafContents() Collect Leaf Contents}' operation. + * + * + * @return the meta object for the 'Collect Leaf Contents' operation. + * @see rba.core.AbstractContent#collectLeafContents() + * @generated + */ + EOperation getAbstractContent__CollectLeafContents(); + + /** + * Returns the meta object for class '{@link rba.core.AbstractScene Abstract Scene}'. + * + * + * @return the meta object for class 'Abstract Scene'. + * @see rba.core.AbstractScene + * @generated + */ + EClass getAbstractScene(); + + /** + * Returns the meta object for class '{@link rba.core.Scene Scene}'. + * + * + * @return the meta object for class 'Scene'. + * @see rba.core.Scene + * @generated + */ + EClass getScene(); + + /** + * Returns the meta object for the attribute '{@link rba.core.Scene#isGlobal Global}'. + * + * + * @return the meta object for the attribute 'Global'. + * @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 Properties}'. + * + * + * @return the meta object for the containment reference list 'Properties'. + * @see rba.core.Scene#getProperties() + * @see #getScene() + * @generated + */ + EReference getScene_Properties(); + + /** + * Returns the meta object for the '{@link rba.core.Scene#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.core.Scene#getExpressionType() + * @generated + */ + EOperation getScene__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.core.Content Content}'. + * + * + * @return the meta object for class 'Content'. + * @see rba.core.Content + * @generated + */ + EClass getContent(); + + /** + * Returns the meta object for the attribute '{@link rba.core.Content#getLoserType Loser Type}'. + * + * + * @return the meta object for the attribute 'Loser Type'. + * @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 States}'. + * + * + * @return the meta object for the containment reference list 'States'. + * @see rba.core.Content#getStates() + * @see #getContent() + * @generated + */ + EReference getContent_States(); + + /** + * Returns the meta object for the '{@link rba.core.Content#collectLeafContents() Collect Leaf Contents}' operation. + * + * + * @return the meta object for the 'Collect Leaf Contents' operation. + * @see rba.core.Content#collectLeafContents() + * @generated + */ + EOperation getContent__CollectLeafContents(); + + /** + * Returns the meta object for class '{@link rba.core.ContentSet Content Set}'. + * + * + * @return the meta object for class 'Content Set'. + * @see rba.core.ContentSet + * @generated + */ + EClass getContentSet(); + + /** + * Returns the meta object for the reference list '{@link rba.core.ContentSet#getTarget Target}'. + * + * + * @return the meta object for the reference list 'Target'. + * @see rba.core.ContentSet#getTarget() + * @see #getContentSet() + * @generated + */ + EReference getContentSet_Target(); + + /** + * Returns the meta object for the '{@link rba.core.ContentSet#collectLeafContents() Collect Leaf Contents}' operation. + * + * + * @return the meta object for the 'Collect Leaf Contents' operation. + * @see rba.core.ContentSet#collectLeafContents() + * @generated + */ + EOperation getContentSet__CollectLeafContents(); + + /** + * Returns the meta object for class '{@link rba.core.ContentState Content State}'. + * + * + * @return the meta object for class 'Content State'. + * @see rba.core.ContentState + * @generated + */ + EClass getContentState(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.ContentState#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see rba.core.ContentState#getValue() + * @see #getContentState() + * @generated + */ + EReference getContentState_Value(); + + /** + * Returns the meta object for the container reference '{@link rba.core.ContentState#getOwner Owner}'. + * + * + * @return the meta object for the container reference 'Owner'. + * @see rba.core.ContentState#getOwner() + * @see #getContentState() + * @generated + */ + EReference getContentState_Owner(); + + /** + * Returns the meta object for class '{@link rba.core.AbstractProperty Abstract Property}'. + * + * + * @return the meta object for class 'Abstract Property'. + * @see rba.core.AbstractProperty + * @generated + */ + EClass getAbstractProperty(); + + /** + * Returns the meta object for the container reference '{@link rba.core.AbstractProperty#getOwner Owner}'. + * + * + * @return the meta object for the container reference 'Owner'. + * @see rba.core.AbstractProperty#getOwner() + * @see #getAbstractProperty() + * @generated + */ + EReference getAbstractProperty_Owner(); + + /** + * Returns the meta object for the '{@link rba.core.AbstractProperty#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.core.AbstractProperty#getExpressionType() + * @generated + */ + EOperation getAbstractProperty__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.core.IntegerProperty Integer Property}'. + * + * + * @return the meta object for class 'Integer Property'. + * @see rba.core.IntegerProperty + * @generated + */ + EClass getIntegerProperty(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.IntegerProperty#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see rba.core.IntegerProperty#getValue() + * @see #getIntegerProperty() + * @generated + */ + EReference getIntegerProperty_Value(); + + /** + * Returns the meta object for class '{@link rba.core.AbstractConstraint Abstract Constraint}'. + * + * + * @return the meta object for class 'Abstract Constraint'. + * @see rba.core.AbstractConstraint + * @generated + */ + EClass getAbstractConstraint(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.AbstractConstraint#getExpression Expression}'. + * + * + * @return the meta object for the containment reference 'Expression'. + * @see rba.core.AbstractConstraint#getExpression() + * @see #getAbstractConstraint() + * @generated + */ + EReference getAbstractConstraint_Expression(); + + /** + * Returns the meta object for class '{@link rba.core.Constraint Constraint}'. + * + * + * @return the meta object for class 'Constraint'. + * @see rba.core.Constraint + * @generated + */ + EClass getConstraint(); + + /** + * Returns the meta object for the attribute '{@link rba.core.Constraint#isRuntime Runtime}'. + * + * + * @return the meta object for the attribute 'Runtime'. + * @see rba.core.Constraint#isRuntime() + * @see #getConstraint() + * @generated + */ + EAttribute getConstraint_Runtime(); + + /** + * Returns the meta object for class '{@link rba.core.Expression Expression}'. + * + * + * @return the meta object for class 'Expression'. + * @see rba.core.Expression + * @generated + */ + EClass getExpression(); + + /** + * Returns the meta object for the attribute '{@link rba.core.Expression#getType Type}'. + * + * + * @return the meta object for the attribute 'Type'. + * @see rba.core.Expression#getType() + * @see #getExpression() + * @generated + */ + EAttribute getExpression_Type(); + + /** + * Returns the meta object for the attribute '{@link rba.core.Expression#getExpression Expression}'. + * + * + * @return the meta object for the attribute 'Expression'. + * @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 Let Statements}'. + * + * + * @return the meta object for the containment reference list 'Let Statements'. + * @see rba.core.Expression#getLetStatements() + * @see #getExpression() + * @generated + */ + EReference getExpression_LetStatements(); + + /** + * Returns the meta object for the '{@link rba.core.Expression#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.Expression#getUnderlyingType() + * @generated + */ + EOperation getExpression__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.Expression#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.Expression#getExpressionText() + * @generated + */ + EOperation getExpression__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.LetStatement Let Statement}'. + * + * + * @return the meta object for class 'Let Statement'. + * @see rba.core.LetStatement + * @generated + */ + EClass getLetStatement(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.LetStatement#getVariable Variable}'. + * + * + * @return the meta object for the containment reference 'Variable'. + * @see rba.core.LetStatement#getVariable() + * @see #getLetStatement() + * @generated + */ + EReference getLetStatement_Variable(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.LetStatement#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see rba.core.LetStatement#getBody() + * @see #getLetStatement() + * @generated + */ + EReference getLetStatement_Body(); + + /** + * Returns the meta object for the '{@link rba.core.LetStatement#toString() To String}' operation. + * + * + * @return the meta object for the 'To String' operation. + * @see rba.core.LetStatement#toString() + * @generated + */ + EOperation getLetStatement__ToString(); + + /** + * Returns the meta object for class '{@link rba.core.ComplexExpression Complex Expression}'. + * + * + * @return the meta object for class 'Complex Expression'. + * @see rba.core.ComplexExpression + * @generated + */ + EClass getComplexExpression(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.ComplexExpression#getOtherExpression Other Expression}'. + * + * + * @return the meta object for the containment reference 'Other Expression'. + * @see rba.core.ComplexExpression#getOtherExpression() + * @see #getComplexExpression() + * @generated + */ + EReference getComplexExpression_OtherExpression(); + + /** + * Returns the meta object for the '{@link rba.core.ComplexExpression#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ComplexExpression#getExpressionText() + * @generated + */ + EOperation getComplexExpression__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.ComplexExpression#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ComplexExpression#getUnderlyingType() + * @generated + */ + EOperation getComplexExpression__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.ComplexExpression#getType() Get Type}' operation. + * + * + * @return the meta object for the 'Get Type' operation. + * @see rba.core.ComplexExpression#getType() + * @generated + */ + EOperation getComplexExpression__GetType(); + + /** + * Returns the meta object for class '{@link rba.core.Operator Operator}'. + * + * + * @return the meta object for class 'Operator'. + * @see rba.core.Operator + * @generated + */ + EClass getOperator(); + + /** + * Returns the meta object for the containment reference list '{@link rba.core.Operator#getOperand Operand}'. + * + * + * @return the meta object for the containment reference list 'Operand'. + * @see rba.core.Operator#getOperand() + * @see #getOperator() + * @generated + */ + EReference getOperator_Operand(); + + /** + * Returns the meta object for the '{@link rba.core.Operator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.Operator#getSymbol() + * @generated + */ + EOperation getOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.IsTypeOf Is Type Of}'. + * + * + * @return the meta object for class 'Is Type Of'. + * @see rba.core.IsTypeOf + * @generated + */ + EClass getIsTypeOf(); + + /** + * Returns the meta object for the attribute '{@link rba.core.IsTypeOf#getTagName Tag Name}'. + * + * + * @return the meta object for the attribute 'Tag Name'. + * @see rba.core.IsTypeOf#getTagName() + * @see #getIsTypeOf() + * @generated + */ + EAttribute getIsTypeOf_TagName(); + + /** + * Returns the meta object for the '{@link rba.core.IsTypeOf#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.IsTypeOf#getExpressionText() + * @generated + */ + EOperation getIsTypeOf__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.IsTypeOf#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.IsTypeOf#getSymbol() + * @generated + */ + EOperation getIsTypeOf__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.IsTypeOf#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.IsTypeOf#getUnderlyingType() + * @generated + */ + EOperation getIsTypeOf__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.ObjectReference Object Reference}'. + * + * + * @return the meta object for class 'Object Reference'. + * @see rba.core.ObjectReference + * @generated + */ + EClass getObjectReference(); + + /** + * Returns the meta object for the reference '{@link rba.core.ObjectReference#getRefObject Ref Object}'. + * + * + * @return the meta object for the reference 'Ref Object'. + * @see rba.core.ObjectReference#getRefObject() + * @see #getObjectReference() + * @generated + */ + EReference getObjectReference_RefObject(); + + /** + * Returns the meta object for the '{@link rba.core.ObjectReference#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ObjectReference#getUnderlyingType() + * @generated + */ + EOperation getObjectReference__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.ObjectReference#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ObjectReference#getExpressionText() + * @generated + */ + EOperation getObjectReference__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.PreviousModifier Previous Modifier}'. + * + * + * @return the meta object for class 'Previous Modifier'. + * @see rba.core.PreviousModifier + * @generated + */ + EClass getPreviousModifier(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.PreviousModifier#getObjReference Obj Reference}'. + * + * + * @return the meta object for the containment reference 'Obj Reference'. + * @see rba.core.PreviousModifier#getObjReference() + * @see #getPreviousModifier() + * @generated + */ + EReference getPreviousModifier_ObjReference(); + + /** + * Returns the meta object for the '{@link rba.core.PreviousModifier#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.PreviousModifier#getSymbol() + * @generated + */ + EOperation getPreviousModifier__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.PreviousModifier#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.PreviousModifier#getUnderlyingType() + * @generated + */ + EOperation getPreviousModifier__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.PreviousModifier#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.PreviousModifier#getExpressionText() + * @generated + */ + EOperation getPreviousModifier__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.GreaterThanOperator Greater Than Operator}'. + * + * + * @return the meta object for class 'Greater Than Operator'. + * @see rba.core.GreaterThanOperator + * @generated + */ + EClass getGreaterThanOperator(); + + /** + * Returns the meta object for the '{@link rba.core.GreaterThanOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.GreaterThanOperator#getSymbol() + * @generated + */ + EOperation getGreaterThanOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.MuchGreaterThanOperator Much Greater Than Operator}'. + * + * + * @return the meta object for class 'Much Greater Than Operator'. + * @see rba.core.MuchGreaterThanOperator + * @generated + */ + EClass getMuchGreaterThanOperator(); + + /** + * Returns the meta object for the '{@link rba.core.MuchGreaterThanOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.MuchGreaterThanOperator#getSymbol() + * @generated + */ + EOperation getMuchGreaterThanOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.LowerThanOperator Lower Than Operator}'. + * + * + * @return the meta object for class 'Lower Than Operator'. + * @see rba.core.LowerThanOperator + * @generated + */ + EClass getLowerThanOperator(); + + /** + * Returns the meta object for the '{@link rba.core.LowerThanOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.LowerThanOperator#getSymbol() + * @generated + */ + EOperation getLowerThanOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.ComparisonOperator Comparison Operator}'. + * + * + * @return the meta object for class 'Comparison Operator'. + * @see rba.core.ComparisonOperator + * @generated + */ + EClass getComparisonOperator(); + + /** + * Returns the meta object for the '{@link rba.core.ComparisonOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ComparisonOperator#getUnderlyingType() + * @generated + */ + EOperation getComparisonOperator__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.ComparisonOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ComparisonOperator#getExpressionText() + * @generated + */ + EOperation getComparisonOperator__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.EqualToOperator Equal To Operator}'. + * + * + * @return the meta object for class 'Equal To Operator'. + * @see rba.core.EqualToOperator + * @generated + */ + EClass getEqualToOperator(); + + /** + * Returns the meta object for the '{@link rba.core.EqualToOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.EqualToOperator#getSymbol() + * @generated + */ + EOperation getEqualToOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.ComparisonAnd Comparison And}'. + * + * + * @return the meta object for class 'Comparison And'. + * @see rba.core.ComparisonAnd + * @generated + */ + EClass getComparisonAnd(); + + /** + * Returns the meta object for the '{@link rba.core.ComparisonAnd#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.ComparisonAnd#getSymbol() + * @generated + */ + EOperation getComparisonAnd__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.ComparisonAnd#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ComparisonAnd#getExpressionText() + * @generated + */ + EOperation getComparisonAnd__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.LogicalOperator Logical Operator}'. + * + * + * @return the meta object for class 'Logical Operator'. + * @see rba.core.LogicalOperator + * @generated + */ + EClass getLogicalOperator(); + + /** + * Returns the meta object for the '{@link rba.core.LogicalOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.LogicalOperator#getUnderlyingType() + * @generated + */ + EOperation getLogicalOperator__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.LogicalOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.LogicalOperator#getExpressionText() + * @generated + */ + EOperation getLogicalOperator__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.AndOperator And Operator}'. + * + * + * @return the meta object for class 'And Operator'. + * @see rba.core.AndOperator + * @generated + */ + EClass getAndOperator(); + + /** + * Returns the meta object for the '{@link rba.core.AndOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.AndOperator#getSymbol() + * @generated + */ + EOperation getAndOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.OrOperator Or Operator}'. + * + * + * @return the meta object for class 'Or Operator'. + * @see rba.core.OrOperator + * @generated + */ + EClass getOrOperator(); + + /** + * Returns the meta object for the '{@link rba.core.OrOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.OrOperator#getSymbol() + * @generated + */ + EOperation getOrOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.NotOperator Not Operator}'. + * + * + * @return the meta object for class 'Not Operator'. + * @see rba.core.NotOperator + * @generated + */ + EClass getNotOperator(); + + /** + * Returns the meta object for the '{@link rba.core.NotOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.NotOperator#getSymbol() + * @generated + */ + EOperation getNotOperator__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.NotOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.NotOperator#getExpressionText() + * @generated + */ + EOperation getNotOperator__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.IsEqualToOperator Is Equal To Operator}'. + * + * + * @return the meta object for class 'Is Equal To Operator'. + * @see rba.core.IsEqualToOperator + * @generated + */ + EClass getIsEqualToOperator(); + + /** + * Returns the meta object for the '{@link rba.core.IsEqualToOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.IsEqualToOperator#getSymbol() + * @generated + */ + EOperation getIsEqualToOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.IsGreaterThanOperator Is Greater Than Operator}'. + * + * + * @return the meta object for class 'Is Greater Than Operator'. + * @see rba.core.IsGreaterThanOperator + * @generated + */ + EClass getIsGreaterThanOperator(); + + /** + * Returns the meta object for the '{@link rba.core.IsGreaterThanOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.IsGreaterThanOperator#getSymbol() + * @generated + */ + EOperation getIsGreaterThanOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.IsLowerThanOperator Is Lower Than Operator}'. + * + * + * @return the meta object for class 'Is Lower Than Operator'. + * @see rba.core.IsLowerThanOperator + * @generated + */ + EClass getIsLowerThanOperator(); + + /** + * Returns the meta object for the '{@link rba.core.IsLowerThanOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.IsLowerThanOperator#getSymbol() + * @generated + */ + EOperation getIsLowerThanOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.IsGreaterThanEqualOperator Is Greater Than Equal Operator}'. + * + * + * @return the meta object for class 'Is Greater Than Equal Operator'. + * @see rba.core.IsGreaterThanEqualOperator + * @generated + */ + EClass getIsGreaterThanEqualOperator(); + + /** + * Returns the meta object for the '{@link rba.core.IsGreaterThanEqualOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.IsGreaterThanEqualOperator#getSymbol() + * @generated + */ + EOperation getIsGreaterThanEqualOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.IsLowerThanEqualOperator Is Lower Than Equal Operator}'. + * + * + * @return the meta object for class 'Is Lower Than Equal Operator'. + * @see rba.core.IsLowerThanEqualOperator + * @generated + */ + EClass getIsLowerThanEqualOperator(); + + /** + * Returns the meta object for the '{@link rba.core.IsLowerThanEqualOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.IsLowerThanEqualOperator#getSymbol() + * @generated + */ + EOperation getIsLowerThanEqualOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.ArithmeticOperator Arithmetic Operator}'. + * + * + * @return the meta object for class 'Arithmetic Operator'. + * @see rba.core.ArithmeticOperator + * @generated + */ + EClass getArithmeticOperator(); + + /** + * Returns the meta object for the '{@link rba.core.ArithmeticOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ArithmeticOperator#getUnderlyingType() + * @generated + */ + EOperation getArithmeticOperator__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.ArithmeticOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ArithmeticOperator#getExpressionText() + * @generated + */ + EOperation getArithmeticOperator__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.PlusOperator Plus Operator}'. + * + * + * @return the meta object for class 'Plus Operator'. + * @see rba.core.PlusOperator + * @generated + */ + EClass getPlusOperator(); + + /** + * Returns the meta object for the '{@link rba.core.PlusOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.PlusOperator#getSymbol() + * @generated + */ + EOperation getPlusOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.ImpliesOperator Implies Operator}'. + * + * + * @return the meta object for class 'Implies Operator'. + * @see rba.core.ImpliesOperator + * @generated + */ + EClass getImpliesOperator(); + + /** + * Returns the meta object for the '{@link rba.core.ImpliesOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.ImpliesOperator#getSymbol() + * @generated + */ + EOperation getImpliesOperator__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.ContentOperator Content Operator}'. + * + * + * @return the meta object for class 'Content Operator'. + * @see rba.core.ContentOperator + * @generated + */ + EClass getContentOperator(); + + /** + * Returns the meta object for the '{@link rba.core.ContentOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ContentOperator#getExpressionText() + * @generated + */ + EOperation getContentOperator__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.IsActive Is Active}'. + * + * + * @return the meta object for class 'Is Active'. + * @see rba.core.IsActive + * @generated + */ + EClass getIsActive(); + + /** + * Returns the meta object for the '{@link rba.core.IsActive#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.IsActive#getSymbol() + * @generated + */ + EOperation getIsActive__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.IsActive#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.IsActive#getUnderlyingType() + * @generated + */ + EOperation getIsActive__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.GetAllocatables Get Allocatables}'. + * + * + * @return the meta object for class 'Get Allocatables'. + * @see rba.core.GetAllocatables + * @generated + */ + EClass getGetAllocatables(); + + /** + * Returns the meta object for the '{@link rba.core.GetAllocatables#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.GetAllocatables#getSymbol() + * @generated + */ + EOperation getGetAllocatables__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.GetAllocatables#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.GetAllocatables#getUnderlyingType() + * @generated + */ + EOperation getGetAllocatables__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.HasBeenDisplayed Has Been Displayed}'. + * + * + * @return the meta object for class 'Has Been Displayed'. + * @see rba.core.HasBeenDisplayed + * @generated + */ + EClass getHasBeenDisplayed(); + + /** + * Returns the meta object for the '{@link rba.core.HasBeenDisplayed#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.HasBeenDisplayed#getSymbol() + * @generated + */ + EOperation getHasBeenDisplayed__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.HasBeenDisplayed#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.HasBeenDisplayed#getUnderlyingType() + * @generated + */ + EOperation getHasBeenDisplayed__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.ActiveState Active State}'. + * + * + * @return the meta object for class 'Active State'. + * @see rba.core.ActiveState + * @generated + */ + EClass getActiveState(); + + /** + * Returns the meta object for the '{@link rba.core.ActiveState#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.ActiveState#getSymbol() + * @generated + */ + EOperation getActiveState__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.ActiveState#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ActiveState#getUnderlyingType() + * @generated + */ + EOperation getActiveState__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.ObjectCompare Object Compare}'. + * + * + * @return the meta object for class 'Object Compare'. + * @see rba.core.ObjectCompare + * @generated + */ + EClass getObjectCompare(); + + /** + * Returns the meta object for the '{@link rba.core.ObjectCompare#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.ObjectCompare#getSymbol() + * @generated + */ + EOperation getObjectCompare__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.ObjectCompare#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ObjectCompare#getUnderlyingType() + * @generated + */ + EOperation getObjectCompare__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.ObjectCompare#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ObjectCompare#getExpressionText() + * @generated + */ + EOperation getObjectCompare__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.ThatOfOperator That Of Operator}'. + * + * + * @return the meta object for class 'That Of Operator'. + * @see rba.core.ThatOfOperator + * @generated + */ + EClass getThatOfOperator(); + + /** + * Returns the meta object for the '{@link rba.core.ThatOfOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ThatOfOperator#getExpressionText() + * @generated + */ + EOperation getThatOfOperator__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.ThatOfOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.ThatOfOperator#getSymbol() + * @generated + */ + EOperation getThatOfOperator__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.ThatOfOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ThatOfOperator#getUnderlyingType() + * @generated + */ + EOperation getThatOfOperator__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.ValueExpression Value Expression}'. + * + * + * @return the meta object for class 'Value Expression'. + * @see rba.core.ValueExpression + * @generated + */ + EClass getValueExpression(); + + /** + * Returns the meta object for the '{@link rba.core.ValueExpression#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ValueExpression#getUnderlyingType() + * @generated + */ + EOperation getValueExpression__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.ValueExpression#getExpressionValue() Get Expression Value}' operation. + * + * + * @return the meta object for the 'Get Expression Value' operation. + * @see rba.core.ValueExpression#getExpressionValue() + * @generated + */ + EOperation getValueExpression__GetExpressionValue(); + + /** + * Returns the meta object for the '{@link rba.core.ValueExpression#getType() Get Type}' operation. + * + * + * @return the meta object for the 'Get Type' operation. + * @see rba.core.ValueExpression#getType() + * @generated + */ + EOperation getValueExpression__GetType(); + + /** + * Returns the meta object for class '{@link rba.core.MaxValue Max Value}'. + * + * + * @return the meta object for class 'Max Value'. + * @see rba.core.MaxValue + * @generated + */ + EClass getMaxValue(); + + /** + * Returns the meta object for the '{@link rba.core.MaxValue#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.MaxValue#getExpressionText() + * @generated + */ + EOperation getMaxValue__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.MaxValue#getExpressionValue() Get Expression Value}' operation. + * + * + * @return the meta object for the 'Get Expression Value' operation. + * @see rba.core.MaxValue#getExpressionValue() + * @generated + */ + EOperation getMaxValue__GetExpressionValue(); + + /** + * Returns the meta object for class '{@link rba.core.MinValue Min Value}'. + * + * + * @return the meta object for class 'Min Value'. + * @see rba.core.MinValue + * @generated + */ + EClass getMinValue(); + + /** + * Returns the meta object for the '{@link rba.core.MinValue#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.MinValue#getExpressionText() + * @generated + */ + EOperation getMinValue__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.MinValue#getExpressionValue() Get Expression Value}' operation. + * + * + * @return the meta object for the 'Get Expression Value' operation. + * @see rba.core.MinValue#getExpressionValue() + * @generated + */ + EOperation getMinValue__GetExpressionValue(); + + /** + * Returns the meta object for class '{@link rba.core.NoneValue None Value}'. + * + * + * @return the meta object for class 'None Value'. + * @see rba.core.NoneValue + * @generated + */ + EClass getNoneValue(); + + /** + * Returns the meta object for the '{@link rba.core.NoneValue#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.NoneValue#getExpressionText() + * @generated + */ + EOperation getNoneValue__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.NoneValue#getExpressionValue() Get Expression Value}' operation. + * + * + * @return the meta object for the 'Get Expression Value' operation. + * @see rba.core.NoneValue#getExpressionValue() + * @generated + */ + EOperation getNoneValue__GetExpressionValue(); + + /** + * Returns the meta object for class '{@link rba.core.StandardValue Standard Value}'. + * + * + * @return the meta object for class 'Standard Value'. + * @see rba.core.StandardValue + * @generated + */ + EClass getStandardValue(); + + /** + * Returns the meta object for the '{@link rba.core.StandardValue#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.StandardValue#getExpressionText() + * @generated + */ + EOperation getStandardValue__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.StandardValue#getExpressionValue() Get Expression Value}' operation. + * + * + * @return the meta object for the 'Get Expression Value' operation. + * @see rba.core.StandardValue#getExpressionValue() + * @generated + */ + EOperation getStandardValue__GetExpressionValue(); + + /** + * Returns the meta object for class '{@link rba.core.IntegerValue Integer Value}'. + * + * + * @return the meta object for class 'Integer Value'. + * @see rba.core.IntegerValue + * @generated + */ + EClass getIntegerValue(); + + /** + * Returns the meta object for the attribute '{@link rba.core.IntegerValue#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see rba.core.IntegerValue#getValue() + * @see #getIntegerValue() + * @generated + */ + EAttribute getIntegerValue_Value(); + + /** + * Returns the meta object for the '{@link rba.core.IntegerValue#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.IntegerValue#getExpressionText() + * @generated + */ + EOperation getIntegerValue__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.IntegerValue#getExpressionValue() Get Expression Value}' operation. + * + * + * @return the meta object for the 'Get Expression Value' operation. + * @see rba.core.IntegerValue#getExpressionValue() + * @generated + */ + EOperation getIntegerValue__GetExpressionValue(); + + /** + * Returns the meta object for class '{@link rba.core.EnumExpression Enum Expression}'. + * + * + * @return the meta object for class 'Enum Expression'. + * @see rba.core.EnumExpression + * @generated + */ + EClass getEnumExpression(); + + /** + * Returns the meta object for the '{@link rba.core.EnumExpression#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.EnumExpression#getUnderlyingType() + * @generated + */ + EOperation getEnumExpression__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.EnumExpression#getExpressionValue() Get Expression Value}' operation. + * + * + * @return the meta object for the 'Get Expression Value' operation. + * @see rba.core.EnumExpression#getExpressionValue() + * @generated + */ + EOperation getEnumExpression__GetExpressionValue(); + + /** + * Returns the meta object for the '{@link rba.core.EnumExpression#getType() Get Type}' operation. + * + * + * @return the meta object for the 'Get Type' operation. + * @see rba.core.EnumExpression#getType() + * @generated + */ + EOperation getEnumExpression__GetType(); + + /** + * Returns the meta object for class '{@link rba.core.LoserTypeExpression Loser Type Expression}'. + * + * + * @return the meta object for class 'Loser Type Expression'. + * @see rba.core.LoserTypeExpression + * @generated + */ + EClass getLoserTypeExpression(); + + /** + * Returns the meta object for the attribute '{@link rba.core.LoserTypeExpression#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see rba.core.LoserTypeExpression#getValue() + * @see #getLoserTypeExpression() + * @generated + */ + EAttribute getLoserTypeExpression_Value(); + + /** + * Returns the meta object for the '{@link rba.core.LoserTypeExpression#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.LoserTypeExpression#getExpressionText() + * @generated + */ + EOperation getLoserTypeExpression__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.LoserTypeExpression#getExpressionValue() Get Expression Value}' operation. + * + * + * @return the meta object for the 'Get Expression Value' operation. + * @see rba.core.LoserTypeExpression#getExpressionValue() + * @generated + */ + EOperation getLoserTypeExpression__GetExpressionValue(); + + /** + * Returns the meta object for class '{@link rba.core.ArbitrationPolicyExpression Arbitration Policy Expression}'. + * + * + * @return the meta object for class 'Arbitration Policy Expression'. + * @see rba.core.ArbitrationPolicyExpression + * @generated + */ + EClass getArbitrationPolicyExpression(); + + /** + * Returns the meta object for the attribute '{@link rba.core.ArbitrationPolicyExpression#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see rba.core.ArbitrationPolicyExpression#getValue() + * @see #getArbitrationPolicyExpression() + * @generated + */ + EAttribute getArbitrationPolicyExpression_Value(); + + /** + * Returns the meta object for the '{@link rba.core.ArbitrationPolicyExpression#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ArbitrationPolicyExpression#getExpressionText() + * @generated + */ + EOperation getArbitrationPolicyExpression__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.ArbitrationPolicyExpression#getExpressionValue() Get Expression Value}' operation. + * + * + * @return the meta object for the 'Get Expression Value' operation. + * @see rba.core.ArbitrationPolicyExpression#getExpressionValue() + * @generated + */ + EOperation getArbitrationPolicyExpression__GetExpressionValue(); + + /** + * Returns the meta object for class '{@link rba.core.SetExpression Set Expression}'. + * + * + * @return the meta object for class 'Set Expression'. + * @see rba.core.SetExpression + * @generated + */ + EClass getSetExpression(); + + /** + * Returns the meta object for class '{@link rba.core.SetOperator Set Operator}'. + * + * + * @return the meta object for class 'Set Operator'. + * @see rba.core.SetOperator + * @generated + */ + EClass getSetOperator(); + + /** + * Returns the meta object for class '{@link rba.core.SizeOperator Size Operator}'. + * + * + * @return the meta object for class 'Size Operator'. + * @see rba.core.SizeOperator + * @generated + */ + EClass getSizeOperator(); + + /** + * Returns the meta object for the '{@link rba.core.SizeOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.SizeOperator#getExpressionText() + * @generated + */ + EOperation getSizeOperator__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.SizeOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.SizeOperator#getSymbol() + * @generated + */ + EOperation getSizeOperator__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.SizeOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.SizeOperator#getUnderlyingType() + * @generated + */ + EOperation getSizeOperator__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.ExistsOperator Exists Operator}'. + * + * + * @return the meta object for class 'Exists Operator'. + * @see rba.core.ExistsOperator + * @generated + */ + EClass getExistsOperator(); + + /** + * Returns the meta object for the '{@link rba.core.ExistsOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ExistsOperator#getExpressionText() + * @generated + */ + EOperation getExistsOperator__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.ExistsOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.ExistsOperator#getSymbol() + * @generated + */ + EOperation getExistsOperator__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.ExistsOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ExistsOperator#getUnderlyingType() + * @generated + */ + EOperation getExistsOperator__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.ForAllOperator For All Operator}'. + * + * + * @return the meta object for class 'For All Operator'. + * @see rba.core.ForAllOperator + * @generated + */ + EClass getForAllOperator(); + + /** + * Returns the meta object for the '{@link rba.core.ForAllOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ForAllOperator#getExpressionText() + * @generated + */ + EOperation getForAllOperator__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.ForAllOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.ForAllOperator#getSymbol() + * @generated + */ + EOperation getForAllOperator__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.ForAllOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ForAllOperator#getUnderlyingType() + * @generated + */ + EOperation getForAllOperator__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.MaxOperator Max Operator}'. + * + * + * @return the meta object for class 'Max Operator'. + * @see rba.core.MaxOperator + * @generated + */ + EClass getMaxOperator(); + + /** + * Returns the meta object for the '{@link rba.core.MaxOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.MaxOperator#getExpressionText() + * @generated + */ + EOperation getMaxOperator__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.MaxOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.MaxOperator#getSymbol() + * @generated + */ + EOperation getMaxOperator__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.MaxOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.MaxOperator#getUnderlyingType() + * @generated + */ + EOperation getMaxOperator__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.MinOperator Min Operator}'. + * + * + * @return the meta object for class 'Min Operator'. + * @see rba.core.MinOperator + * @generated + */ + EClass getMinOperator(); + + /** + * Returns the meta object for the '{@link rba.core.MinOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.MinOperator#getExpressionText() + * @generated + */ + EOperation getMinOperator__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.MinOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.MinOperator#getSymbol() + * @generated + */ + EOperation getMinOperator__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.MinOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.MinOperator#getUnderlyingType() + * @generated + */ + EOperation getMinOperator__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.SelectOperator Select Operator}'. + * + * + * @return the meta object for class 'Select Operator'. + * @see rba.core.SelectOperator + * @generated + */ + EClass getSelectOperator(); + + /** + * Returns the meta object for the '{@link rba.core.SelectOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.SelectOperator#getExpressionText() + * @generated + */ + EOperation getSelectOperator__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.SelectOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.SelectOperator#getSymbol() + * @generated + */ + EOperation getSelectOperator__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.SelectOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.SelectOperator#getUnderlyingType() + * @generated + */ + EOperation getSelectOperator__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.SetOfOperator Set Of Operator}'. + * + * + * @return the meta object for class 'Set Of Operator'. + * @see rba.core.SetOfOperator + * @generated + */ + EClass getSetOfOperator(); + + /** + * Returns the meta object for the '{@link rba.core.SetOfOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.SetOfOperator#getExpressionText() + * @generated + */ + EOperation getSetOfOperator__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.SetOfOperator#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.SetOfOperator#getSymbol() + * @generated + */ + EOperation getSetOfOperator__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.SetOfOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.SetOfOperator#getUnderlyingType() + * @generated + */ + EOperation getSetOfOperator__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.LambdaExpression Lambda Expression}'. + * + * + * @return the meta object for class 'Lambda Expression'. + * @see rba.core.LambdaExpression + * @generated + */ + EClass getLambdaExpression(); + + /** + * Returns the meta object for the container reference '{@link rba.core.LambdaExpression#getContext Context}'. + * + * + * @return the meta object for the container reference 'Context'. + * @see rba.core.LambdaExpression#getContext() + * @see #getLambdaExpression() + * @generated + */ + EReference getLambdaExpression_Context(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.LambdaExpression#getX X}'. + * + * + * @return the meta object for the containment reference 'X'. + * @see rba.core.LambdaExpression#getX() + * @see #getLambdaExpression() + * @generated + */ + EReference getLambdaExpression_X(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.LambdaExpression#getBodyText Body Text}'. + * + * + * @return the meta object for the containment reference 'Body Text'. + * @see rba.core.LambdaExpression#getBodyText() + * @see #getLambdaExpression() + * @generated + */ + EReference getLambdaExpression_BodyText(); + + /** + * Returns the meta object for the '{@link rba.core.LambdaExpression#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.LambdaExpression#getExpressionText() + * @generated + */ + EOperation getLambdaExpression__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.core.LambdaExpression#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.LambdaExpression#getUnderlyingType() + * @generated + */ + EOperation getLambdaExpression__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.Variable Variable}'. + * + * + * @return the meta object for class 'Variable'. + * @see rba.core.Variable + * @generated + */ + EClass getVariable(); + + /** + * Returns the meta object for the '{@link rba.core.Variable#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.core.Variable#getExpressionType() + * @generated + */ + EOperation getVariable__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.core.LambdaContext Lambda Context}'. + * + * + * @return the meta object for class 'Lambda Context'. + * @see rba.core.LambdaContext + * @generated + */ + EClass getLambdaContext(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.LambdaContext#getLambda Lambda}'. + * + * + * @return the meta object for the containment reference 'Lambda'. + * @see rba.core.LambdaContext#getLambda() + * @see #getLambdaContext() + * @generated + */ + EReference getLambdaContext_Lambda(); + + /** + * Returns the meta object for the '{@link rba.core.LambdaContext#getContextType() Get Context Type}' operation. + * + * + * @return the meta object for the 'Get Context Type' operation. + * @see rba.core.LambdaContext#getContextType() + * @generated + */ + EOperation getLambdaContext__GetContextType(); + + /** + * Returns the meta object for class '{@link rba.core.IfStatement If Statement}'. + * + * + * @return the meta object for class 'If Statement'. + * @see rba.core.IfStatement + * @generated + */ + EClass getIfStatement(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.IfStatement#getCondition Condition}'. + * + * + * @return the meta object for the containment reference 'Condition'. + * @see rba.core.IfStatement#getCondition() + * @see #getIfStatement() + * @generated + */ + EReference getIfStatement_Condition(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.IfStatement#getThenExpression Then Expression}'. + * + * + * @return the meta object for the containment reference 'Then Expression'. + * @see rba.core.IfStatement#getThenExpression() + * @see #getIfStatement() + * @generated + */ + EReference getIfStatement_ThenExpression(); + + /** + * Returns the meta object for the containment reference '{@link rba.core.IfStatement#getElseExpression Else Expression}'. + * + * + * @return the meta object for the containment reference 'Else Expression'. + * @see rba.core.IfStatement#getElseExpression() + * @see #getIfStatement() + * @generated + */ + EReference getIfStatement_ElseExpression(); + + /** + * Returns the meta object for the '{@link rba.core.IfStatement#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.IfStatement#getUnderlyingType() + * @generated + */ + EOperation getIfStatement__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.IfStatement#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.IfStatement#getExpressionText() + * @generated + */ + EOperation getIfStatement__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.SceneOperator Scene Operator}'. + * + * + * @return the meta object for class 'Scene Operator'. + * @see rba.core.SceneOperator + * @generated + */ + EClass getSceneOperator(); + + /** + * Returns the meta object for the '{@link rba.core.SceneOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.SceneOperator#getExpressionText() + * @generated + */ + EOperation getSceneOperator__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.IsOn Is On}'. + * + * + * @return the meta object for class 'Is On'. + * @see rba.core.IsOn + * @generated + */ + EClass getIsOn(); + + /** + * Returns the meta object for the '{@link rba.core.IsOn#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.IsOn#getSymbol() + * @generated + */ + EOperation getIsOn__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.IsOn#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.IsOn#getUnderlyingType() + * @generated + */ + EOperation getIsOn__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.AllocatableOperator Allocatable Operator}'. + * + * + * @return the meta object for class 'Allocatable Operator'. + * @see rba.core.AllocatableOperator + * @generated + */ + EClass getAllocatableOperator(); + + /** + * Returns the meta object for the '{@link rba.core.AllocatableOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.AllocatableOperator#getExpressionText() + * @generated + */ + EOperation getAllocatableOperator__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.AllocatedContent Allocated Content}'. + * + * + * @return the meta object for class 'Allocated Content'. + * @see rba.core.AllocatedContent + * @generated + */ + EClass getAllocatedContent(); + + /** + * Returns the meta object for the '{@link rba.core.AllocatedContent#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.AllocatedContent#getSymbol() + * @generated + */ + EOperation getAllocatedContent__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.AllocatedContent#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.AllocatedContent#getUnderlyingType() + * @generated + */ + EOperation getAllocatedContent__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.ContentValue Content Value}'. + * + * + * @return the meta object for class 'Content Value'. + * @see rba.core.ContentValue + * @generated + */ + EClass getContentValue(); + + /** + * Returns the meta object for the '{@link rba.core.ContentValue#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.ContentValue#getSymbol() + * @generated + */ + EOperation getContentValue__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.ContentValue#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ContentValue#getUnderlyingType() + * @generated + */ + EOperation getContentValue__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.GetContentsList Get Contents List}'. + * + * + * @return the meta object for class 'Get Contents List'. + * @see rba.core.GetContentsList + * @generated + */ + EClass getGetContentsList(); + + /** + * Returns the meta object for the '{@link rba.core.GetContentsList#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.GetContentsList#getSymbol() + * @generated + */ + EOperation getGetContentsList__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.GetContentsList#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.GetContentsList#getUnderlyingType() + * @generated + */ + EOperation getGetContentsList__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.ActiveContents Active Contents}'. + * + * + * @return the meta object for class 'Active Contents'. + * @see rba.core.ActiveContents + * @generated + */ + EClass getActiveContents(); + + /** + * Returns the meta object for the '{@link rba.core.ActiveContents#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.ActiveContents#getSymbol() + * @generated + */ + EOperation getActiveContents__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.ActiveContents#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ActiveContents#getUnderlyingType() + * @generated + */ + EOperation getActiveContents__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.PropertyOperator Property Operator}'. + * + * + * @return the meta object for class 'Property Operator'. + * @see rba.core.PropertyOperator + * @generated + */ + EClass getPropertyOperator(); + + /** + * Returns the meta object for the '{@link rba.core.PropertyOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.PropertyOperator#getUnderlyingType() + * @generated + */ + EOperation getPropertyOperator__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.PropertyOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.PropertyOperator#getExpressionText() + * @generated + */ + EOperation getPropertyOperator__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.GetProperty Get Property}'. + * + * + * @return the meta object for class 'Get Property'. + * @see rba.core.GetProperty + * @generated + */ + EClass getGetProperty(); + + /** + * Returns the meta object for the '{@link rba.core.GetProperty#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.GetProperty#getSymbol() + * @generated + */ + EOperation getGetProperty__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.GetProperty#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.GetProperty#getUnderlyingType() + * @generated + */ + EOperation getGetProperty__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.StateValue State Value}'. + * + * + * @return the meta object for class 'State Value'. + * @see rba.core.StateValue + * @generated + */ + EClass getStateValue(); + + /** + * Returns the meta object for the '{@link rba.core.StateValue#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.StateValue#getSymbol() + * @generated + */ + EOperation getStateValue__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.StateValue#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.StateValue#getUnderlyingType() + * @generated + */ + EOperation getStateValue__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.HasComeLaterThan Has Come Later Than}'. + * + * + * @return the meta object for class 'Has Come Later Than'. + * @see rba.core.HasComeLaterThan + * @generated + */ + EClass getHasComeLaterThan(); + + /** + * Returns the meta object for the '{@link rba.core.HasComeLaterThan#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.HasComeLaterThan#getSymbol() + * @generated + */ + EOperation getHasComeLaterThan__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.HasComeLaterThan#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.HasComeLaterThan#getUnderlyingType() + * @generated + */ + EOperation getHasComeLaterThan__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.HasComeLaterThan#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.HasComeLaterThan#getExpressionText() + * @generated + */ + EOperation getHasComeLaterThan__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.HasComeEarlierThan Has Come Earlier Than}'. + * + * + * @return the meta object for class 'Has Come Earlier Than'. + * @see rba.core.HasComeEarlierThan + * @generated + */ + EClass getHasComeEarlierThan(); + + /** + * Returns the meta object for the '{@link rba.core.HasComeEarlierThan#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.HasComeEarlierThan#getSymbol() + * @generated + */ + EOperation getHasComeEarlierThan__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.HasComeEarlierThan#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.HasComeEarlierThan#getUnderlyingType() + * @generated + */ + EOperation getHasComeEarlierThan__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.HasComeEarlierThan#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.HasComeEarlierThan#getExpressionText() + * @generated + */ + EOperation getHasComeEarlierThan__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.SugarExpression Sugar Expression}'. + * + * + * @return the meta object for class 'Sugar Expression'. + * @see rba.core.SugarExpression + * @generated + */ + EClass getSugarExpression(); + + /** + * Returns the meta object for the '{@link rba.core.SugarExpression#canExpand() Can Expand}' operation. + * + * + * @return the meta object for the 'Can Expand' operation. + * @see rba.core.SugarExpression#canExpand() + * @generated + */ + EOperation getSugarExpression__CanExpand(); + + /** + * Returns the meta object for the '{@link rba.core.SugarExpression#getExpanded() Get Expanded}' operation. + * + * + * @return the meta object for the 'Get Expanded' operation. + * @see rba.core.SugarExpression#getExpanded() + * @generated + */ + EOperation getSugarExpression__GetExpanded(); + + /** + * Returns the meta object for class '{@link rba.core.SugarExpressionBase Sugar Expression Base}'. + * + * + * @return the meta object for class 'Sugar Expression Base'. + * @see rba.core.SugarExpressionBase + * @generated + */ + EClass getSugarExpressionBase(); + + /** + * Returns the meta object for the '{@link rba.core.SugarExpressionBase#canExpand() Can Expand}' operation. + * + * + * @return the meta object for the 'Can Expand' operation. + * @see rba.core.SugarExpressionBase#canExpand() + * @generated + */ + EOperation getSugarExpressionBase__CanExpand(); + + /** + * Returns the meta object for class '{@link rba.core.ObjectCompareNot Object Compare Not}'. + * + * + * @return the meta object for class 'Object Compare Not'. + * @see rba.core.ObjectCompareNot + * @generated + */ + EClass getObjectCompareNot(); + + /** + * Returns the meta object for the '{@link rba.core.ObjectCompareNot#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.ObjectCompareNot#getSymbol() + * @generated + */ + EOperation getObjectCompareNot__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.ObjectCompareNot#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.ObjectCompareNot#getUnderlyingType() + * @generated + */ + EOperation getObjectCompareNot__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.ObjectCompareNot#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ObjectCompareNot#getExpressionText() + * @generated + */ + EOperation getObjectCompareNot__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.IsAllocatedTo Is Allocated To}'. + * + * + * @return the meta object for class 'Is Allocated To'. + * @see rba.core.IsAllocatedTo + * @generated + */ + EClass getIsAllocatedTo(); + + /** + * Returns the meta object for the '{@link rba.core.IsAllocatedTo#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.IsAllocatedTo#getSymbol() + * @generated + */ + EOperation getIsAllocatedTo__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.IsAllocatedTo#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.IsAllocatedTo#getUnderlyingType() + * @generated + */ + EOperation getIsAllocatedTo__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.IsAllocatedTo#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.IsAllocatedTo#getExpressionText() + * @generated + */ + EOperation getIsAllocatedTo__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.IsChanged Is Changed}'. + * + * + * @return the meta object for class 'Is Changed'. + * @see rba.core.IsChanged + * @generated + */ + EClass getIsChanged(); + + /** + * Returns the meta object for the '{@link rba.core.IsChanged#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.IsChanged#getSymbol() + * @generated + */ + EOperation getIsChanged__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.IsChanged#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.IsChanged#getUnderlyingType() + * @generated + */ + EOperation getIsChanged__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.core.IsTranslatedTo Is Translated To}'. + * + * + * @return the meta object for class 'Is Translated To'. + * @see rba.core.IsTranslatedTo + * @generated + */ + EClass getIsTranslatedTo(); + + /** + * Returns the meta object for the '{@link rba.core.IsTranslatedTo#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.IsTranslatedTo#getSymbol() + * @generated + */ + EOperation getIsTranslatedTo__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.core.IsTranslatedTo#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.IsTranslatedTo#getUnderlyingType() + * @generated + */ + EOperation getIsTranslatedTo__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.IsTranslatedTo#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.IsTranslatedTo#getExpressionText() + * @generated + */ + EOperation getIsTranslatedTo__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.GetState Get State}'. + * + * + * @return the meta object for class 'Get State'. + * @see rba.core.GetState + * @generated + */ + EClass getGetState(); + + /** + * Returns the meta object for the '{@link rba.core.GetState#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.core.GetState#getSymbol() + * @generated + */ + EOperation getGetState__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.core.ContentStateOperator Content State Operator}'. + * + * + * @return the meta object for class 'Content State Operator'. + * @see rba.core.ContentStateOperator + * @generated + */ + EClass getContentStateOperator(); + + /** + * Returns the meta object for the '{@link rba.core.ContentStateOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.ContentStateOperator#getExpressionText() + * @generated + */ + EOperation getContentStateOperator__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.core.NullExpression Null Expression}'. + * + * + * @return the meta object for class 'Null Expression'. + * @see rba.core.NullExpression + * @generated + */ + EClass getNullExpression(); + + /** + * Returns the meta object for the '{@link rba.core.NullExpression#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.core.NullExpression#getUnderlyingType() + * @generated + */ + EOperation getNullExpression__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.core.NullExpression#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.core.NullExpression#getExpressionText() + * @generated + */ + EOperation getNullExpression__GetExpressionText(); + + /** + * Returns the meta object for enum '{@link rba.core.ArbitrationPolicy Arbitration Policy}'. + * + * + * @return the meta object for enum 'Arbitration Policy'. + * @see rba.core.ArbitrationPolicy + * @generated + */ + EEnum getArbitrationPolicy(); + + /** + * Returns the meta object for enum '{@link rba.core.ExpressionType Expression Type}'. + * + * + * @return the meta object for enum 'Expression Type'. + * @see rba.core.ExpressionType + * @generated + */ + EEnum getExpressionType(); + + /** + * Returns the meta object for enum '{@link rba.core.LoserType Loser Type}'. + * + * + * @return the meta object for enum 'Loser Type'. + * @see rba.core.LoserType + * @generated + */ + EEnum getLoserType(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + RBACoreFactory getRBACoreFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link rba.core.impl.ModelElementImpl Model Element}' class. + * + * + * @see rba.core.impl.ModelElementImpl + * @see rba.core.impl.RBACorePackageImpl#getModelElement() + * @generated + */ + EClass MODEL_ELEMENT = eINSTANCE.getModelElement(); + + /** + * The meta object literal for the 'Description' attribute feature. + * + * + * @generated + */ + EAttribute MODEL_ELEMENT__DESCRIPTION = eINSTANCE.getModelElement_Description(); + + /** + * The meta object literal for the '{@link rba.core.impl.NamedElementImpl Named Element}' class. + * + * + * @see rba.core.impl.NamedElementImpl + * @see rba.core.impl.RBACorePackageImpl#getNamedElement() + * @generated + */ + EClass NAMED_ELEMENT = eINSTANCE.getNamedElement(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name(); + + /** + * The meta object literal for the '{@link rba.core.impl.AbstractAllocatableImpl Abstract Allocatable}' class. + * + * + * @see rba.core.impl.AbstractAllocatableImpl + * @see rba.core.impl.RBACorePackageImpl#getAbstractAllocatable() + * @generated + */ + EClass ABSTRACT_ALLOCATABLE = eINSTANCE.getAbstractAllocatable(); + + /** + * The meta object literal for the 'Contents' reference list feature. + * + * + * @generated + */ + EReference ABSTRACT_ALLOCATABLE__CONTENTS = eINSTANCE.getAbstractAllocatable_Contents(); + + /** + * The meta object literal for the 'Allocatable Group' reference list feature. + * + * + * @generated + */ + EReference ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP = eINSTANCE.getAbstractAllocatable_AllocatableGroup(); + + /** + * The meta object literal for the 'Get Contents List' operation. + * + * + * @generated + */ + EOperation ABSTRACT_ALLOCATABLE___GET_CONTENTS_LIST = eINSTANCE.getAbstractAllocatable__GetContentsList(); + + /** + * The meta object literal for the 'Collect Leaf Allocatable' operation. + * + * + * @generated + */ + EOperation ABSTRACT_ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE = eINSTANCE + .getAbstractAllocatable__CollectLeafAllocatable(); + + /** + * The meta object literal for the '{@link rba.core.impl.AllocatableImpl Allocatable}' class. + * + * + * @see rba.core.impl.AllocatableImpl + * @see rba.core.impl.RBACorePackageImpl#getAllocatable() + * @generated + */ + EClass ALLOCATABLE = eINSTANCE.getAllocatable(); + + /** + * The meta object literal for the 'Arbitration Policy' attribute feature. + * + * + * @generated + */ + EAttribute ALLOCATABLE__ARBITRATION_POLICY = eINSTANCE.getAllocatable_ArbitrationPolicy(); + + /** + * The meta object literal for the 'Visibility' containment reference feature. + * + * + * @generated + */ + EReference ALLOCATABLE__VISIBILITY = eINSTANCE.getAllocatable_Visibility(); + + /** + * The meta object literal for the 'Collect Leaf Allocatable' operation. + * + * + * @generated + */ + EOperation ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE = eINSTANCE.getAllocatable__CollectLeafAllocatable(); + + /** + * The meta object literal for the '{@link rba.core.impl.AllocatableSetImpl Allocatable Set}' class. + * + * + * @see rba.core.impl.AllocatableSetImpl + * @see rba.core.impl.RBACorePackageImpl#getAllocatableSet() + * @generated + */ + EClass ALLOCATABLE_SET = eINSTANCE.getAllocatableSet(); + + /** + * The meta object literal for the 'Target' reference list feature. + * + * + * @generated + */ + EReference ALLOCATABLE_SET__TARGET = eINSTANCE.getAllocatableSet_Target(); + + /** + * The meta object literal for the 'Collect Leaf Allocatable' operation. + * + * + * @generated + */ + EOperation ALLOCATABLE_SET___COLLECT_LEAF_ALLOCATABLE = eINSTANCE.getAllocatableSet__CollectLeafAllocatable(); + + /** + * The meta object literal for the '{@link rba.core.impl.ProjectImpl Project}' class. + * + * + * @see rba.core.impl.ProjectImpl + * @see rba.core.impl.RBACorePackageImpl#getProject() + * @generated + */ + EClass PROJECT = eINSTANCE.getProject(); + + /** + * The meta object literal for the 'Version' attribute feature. + * + * + * @generated + */ + EAttribute PROJECT__VERSION = eINSTANCE.getProject_Version(); + + /** + * The meta object literal for the 'Dummy Name' attribute feature. + * + * + * @generated + */ + EAttribute PROJECT__DUMMY_NAME = eINSTANCE.getProject_DummyName(); + + /** + * The meta object literal for the 'Get Name' operation. + * + * + * @generated + */ + EOperation PROJECT___GET_NAME = eINSTANCE.getProject__GetName(); + + /** + * The meta object literal for the '{@link rba.core.impl.PackagableElementImpl Packagable Element}' class. + * + * + * @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 Package}' class. + * + * + * @see rba.core.impl.PackageImpl + * @see rba.core.impl.RBACorePackageImpl#getPackage() + * @generated + */ + EClass PACKAGE = eINSTANCE.getPackage(); + + /** + * The meta object literal for the 'Packagableelement' containment reference list feature. + * + * + * @generated + */ + EReference PACKAGE__PACKAGABLEELEMENT = eINSTANCE.getPackage_Packagableelement(); + + /** + * The meta object literal for the '{@link rba.core.impl.StereotypeImpl Stereotype}' class. + * + * + * @see rba.core.impl.StereotypeImpl + * @see rba.core.impl.RBACorePackageImpl#getStereotype() + * @generated + */ + EClass STEREOTYPE = eINSTANCE.getStereotype(); + + /** + * The meta object literal for the 'Target Model Name' attribute feature. + * + * + * @generated + */ + EAttribute STEREOTYPE__TARGET_MODEL_NAME = eINSTANCE.getStereotype_TargetModelName(); + + /** + * The meta object literal for the 'Variables' containment reference list feature. + * + * + * @generated + */ + EReference STEREOTYPE__VARIABLES = eINSTANCE.getStereotype_Variables(); + + /** + * The meta object literal for the 'Body Text' attribute feature. + * + * + * @generated + */ + EAttribute STEREOTYPE__BODY_TEXT = eINSTANCE.getStereotype_BodyText(); + + /** + * The meta object literal for the '{@link rba.core.impl.TagImpl Tag}' class. + * + * + * @see rba.core.impl.TagImpl + * @see rba.core.impl.RBACorePackageImpl#getTag() + * @generated + */ + EClass TAG = eINSTANCE.getTag(); + + /** + * The meta object literal for the 'Values' attribute list feature. + * + * + * @generated + */ + EAttribute TAG__VALUES = eINSTANCE.getTag_Values(); + + /** + * The meta object literal for the '{@link rba.core.impl.RuleObjectImpl Rule Object}' class. + * + * + * @see rba.core.impl.RuleObjectImpl + * @see rba.core.impl.RBACorePackageImpl#getRuleObject() + * @generated + */ + EClass RULE_OBJECT = eINSTANCE.getRuleObject(); + + /** + * The meta object literal for the 'Tags' containment reference list feature. + * + * + * @generated + */ + EReference RULE_OBJECT__TAGS = eINSTANCE.getRuleObject_Tags(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation RULE_OBJECT___GET_EXPRESSION_TYPE = eINSTANCE.getRuleObject__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.core.impl.AbstractContentImpl Abstract Content}' class. + * + * + * @see rba.core.impl.AbstractContentImpl + * @see rba.core.impl.RBACorePackageImpl#getAbstractContent() + * @generated + */ + EClass ABSTRACT_CONTENT = eINSTANCE.getAbstractContent(); + + /** + * The meta object literal for the 'Content Group' reference list feature. + * + * + * @generated + */ + EReference ABSTRACT_CONTENT__CONTENT_GROUP = eINSTANCE.getAbstractContent_ContentGroup(); + + /** + * The meta object literal for the 'Allocatable' reference list feature. + * + * + * @generated + */ + EReference ABSTRACT_CONTENT__ALLOCATABLE = eINSTANCE.getAbstractContent_Allocatable(); + + /** + * The meta object literal for the 'Get Allocatable List' operation. + * + * + * @generated + */ + EOperation ABSTRACT_CONTENT___GET_ALLOCATABLE_LIST = eINSTANCE.getAbstractContent__GetAllocatableList(); + + /** + * The meta object literal for the 'Collect Leaf Contents' operation. + * + * + * @generated + */ + EOperation ABSTRACT_CONTENT___COLLECT_LEAF_CONTENTS = eINSTANCE.getAbstractContent__CollectLeafContents(); + + /** + * The meta object literal for the '{@link rba.core.impl.AbstractSceneImpl Abstract Scene}' class. + * + * + * @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 Scene}' class. + * + * + * @see rba.core.impl.SceneImpl + * @see rba.core.impl.RBACorePackageImpl#getScene() + * @generated + */ + EClass SCENE = eINSTANCE.getScene(); + + /** + * The meta object literal for the 'Global' attribute feature. + * + * + * @generated + */ + EAttribute SCENE__GLOBAL = eINSTANCE.getScene_Global(); + + /** + * The meta object literal for the 'Properties' containment reference list feature. + * + * + * @generated + */ + EReference SCENE__PROPERTIES = eINSTANCE.getScene_Properties(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation SCENE___GET_EXPRESSION_TYPE = eINSTANCE.getScene__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.core.impl.ContentImpl Content}' class. + * + * + * @see rba.core.impl.ContentImpl + * @see rba.core.impl.RBACorePackageImpl#getContent() + * @generated + */ + EClass CONTENT = eINSTANCE.getContent(); + + /** + * The meta object literal for the 'Loser Type' attribute feature. + * + * + * @generated + */ + EAttribute CONTENT__LOSER_TYPE = eINSTANCE.getContent_LoserType(); + + /** + * The meta object literal for the 'States' containment reference list feature. + * + * + * @generated + */ + EReference CONTENT__STATES = eINSTANCE.getContent_States(); + + /** + * The meta object literal for the 'Collect Leaf Contents' operation. + * + * + * @generated + */ + EOperation CONTENT___COLLECT_LEAF_CONTENTS = eINSTANCE.getContent__CollectLeafContents(); + + /** + * The meta object literal for the '{@link rba.core.impl.ContentSetImpl Content Set}' class. + * + * + * @see rba.core.impl.ContentSetImpl + * @see rba.core.impl.RBACorePackageImpl#getContentSet() + * @generated + */ + EClass CONTENT_SET = eINSTANCE.getContentSet(); + + /** + * The meta object literal for the 'Target' reference list feature. + * + * + * @generated + */ + EReference CONTENT_SET__TARGET = eINSTANCE.getContentSet_Target(); + + /** + * The meta object literal for the 'Collect Leaf Contents' operation. + * + * + * @generated + */ + EOperation CONTENT_SET___COLLECT_LEAF_CONTENTS = eINSTANCE.getContentSet__CollectLeafContents(); + + /** + * The meta object literal for the '{@link rba.core.impl.ContentStateImpl Content State}' class. + * + * + * @see rba.core.impl.ContentStateImpl + * @see rba.core.impl.RBACorePackageImpl#getContentState() + * @generated + */ + EClass CONTENT_STATE = eINSTANCE.getContentState(); + + /** + * The meta object literal for the 'Value' containment reference feature. + * + * + * @generated + */ + EReference CONTENT_STATE__VALUE = eINSTANCE.getContentState_Value(); + + /** + * The meta object literal for the 'Owner' container reference feature. + * + * + * @generated + */ + EReference CONTENT_STATE__OWNER = eINSTANCE.getContentState_Owner(); + + /** + * The meta object literal for the '{@link rba.core.impl.AbstractPropertyImpl Abstract Property}' class. + * + * + * @see rba.core.impl.AbstractPropertyImpl + * @see rba.core.impl.RBACorePackageImpl#getAbstractProperty() + * @generated + */ + EClass ABSTRACT_PROPERTY = eINSTANCE.getAbstractProperty(); + + /** + * The meta object literal for the 'Owner' container reference feature. + * + * + * @generated + */ + EReference ABSTRACT_PROPERTY__OWNER = eINSTANCE.getAbstractProperty_Owner(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation ABSTRACT_PROPERTY___GET_EXPRESSION_TYPE = eINSTANCE.getAbstractProperty__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.core.impl.IntegerPropertyImpl Integer Property}' class. + * + * + * @see rba.core.impl.IntegerPropertyImpl + * @see rba.core.impl.RBACorePackageImpl#getIntegerProperty() + * @generated + */ + EClass INTEGER_PROPERTY = eINSTANCE.getIntegerProperty(); + + /** + * The meta object literal for the 'Value' containment reference feature. + * + * + * @generated + */ + EReference INTEGER_PROPERTY__VALUE = eINSTANCE.getIntegerProperty_Value(); + + /** + * The meta object literal for the '{@link rba.core.impl.AbstractConstraintImpl Abstract Constraint}' class. + * + * + * @see rba.core.impl.AbstractConstraintImpl + * @see rba.core.impl.RBACorePackageImpl#getAbstractConstraint() + * @generated + */ + EClass ABSTRACT_CONSTRAINT = eINSTANCE.getAbstractConstraint(); + + /** + * The meta object literal for the 'Expression' containment reference feature. + * + * + * @generated + */ + EReference ABSTRACT_CONSTRAINT__EXPRESSION = eINSTANCE.getAbstractConstraint_Expression(); + + /** + * The meta object literal for the '{@link rba.core.impl.ConstraintImpl Constraint}' class. + * + * + * @see rba.core.impl.ConstraintImpl + * @see rba.core.impl.RBACorePackageImpl#getConstraint() + * @generated + */ + EClass CONSTRAINT = eINSTANCE.getConstraint(); + + /** + * The meta object literal for the 'Runtime' attribute feature. + * + * + * @generated + */ + EAttribute CONSTRAINT__RUNTIME = eINSTANCE.getConstraint_Runtime(); + + /** + * The meta object literal for the '{@link rba.core.impl.ExpressionImpl Expression}' class. + * + * + * @see rba.core.impl.ExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getExpression() + * @generated + */ + EClass EXPRESSION = eINSTANCE.getExpression(); + + /** + * The meta object literal for the 'Type' attribute feature. + * + * + * @generated + */ + EAttribute EXPRESSION__TYPE = eINSTANCE.getExpression_Type(); + + /** + * The meta object literal for the 'Expression' attribute feature. + * + * + * @generated + */ + EAttribute EXPRESSION__EXPRESSION = eINSTANCE.getExpression_Expression(); + + /** + * The meta object literal for the 'Let Statements' containment reference list feature. + * + * + * @generated + */ + EReference EXPRESSION__LET_STATEMENTS = eINSTANCE.getExpression_LetStatements(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getExpression__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE.getExpression__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.LetStatementImpl Let Statement}' class. + * + * + * @see rba.core.impl.LetStatementImpl + * @see rba.core.impl.RBACorePackageImpl#getLetStatement() + * @generated + */ + EClass LET_STATEMENT = eINSTANCE.getLetStatement(); + + /** + * The meta object literal for the 'Variable' containment reference feature. + * + * + * @generated + */ + EReference LET_STATEMENT__VARIABLE = eINSTANCE.getLetStatement_Variable(); + + /** + * The meta object literal for the 'Body' containment reference feature. + * + * + * @generated + */ + EReference LET_STATEMENT__BODY = eINSTANCE.getLetStatement_Body(); + + /** + * The meta object literal for the 'To String' operation. + * + * + * @generated + */ + EOperation LET_STATEMENT___TO_STRING = eINSTANCE.getLetStatement__ToString(); + + /** + * The meta object literal for the '{@link rba.core.impl.ComplexExpressionImpl Complex Expression}' class. + * + * + * @see rba.core.impl.ComplexExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getComplexExpression() + * @generated + */ + EClass COMPLEX_EXPRESSION = eINSTANCE.getComplexExpression(); + + /** + * The meta object literal for the 'Other Expression' containment reference feature. + * + * + * @generated + */ + EReference COMPLEX_EXPRESSION__OTHER_EXPRESSION = eINSTANCE.getComplexExpression_OtherExpression(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation COMPLEX_EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE.getComplexExpression__GetExpressionText(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation COMPLEX_EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getComplexExpression__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Type' operation. + * + * + * @generated + */ + EOperation COMPLEX_EXPRESSION___GET_TYPE = eINSTANCE.getComplexExpression__GetType(); + + /** + * The meta object literal for the '{@link rba.core.impl.OperatorImpl Operator}' class. + * + * + * @see rba.core.impl.OperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getOperator() + * @generated + */ + EClass OPERATOR = eINSTANCE.getOperator(); + + /** + * The meta object literal for the 'Operand' containment reference list feature. + * + * + * @generated + */ + EReference OPERATOR__OPERAND = eINSTANCE.getOperator_Operand(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation OPERATOR___GET_SYMBOL = eINSTANCE.getOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.IsTypeOfImpl Is Type Of}' class. + * + * + * @see rba.core.impl.IsTypeOfImpl + * @see rba.core.impl.RBACorePackageImpl#getIsTypeOf() + * @generated + */ + EClass IS_TYPE_OF = eINSTANCE.getIsTypeOf(); + + /** + * The meta object literal for the 'Tag Name' attribute feature. + * + * + * @generated + */ + EAttribute IS_TYPE_OF__TAG_NAME = eINSTANCE.getIsTypeOf_TagName(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation IS_TYPE_OF___GET_EXPRESSION_TEXT = eINSTANCE.getIsTypeOf__GetExpressionText(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_TYPE_OF___GET_SYMBOL = eINSTANCE.getIsTypeOf__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_TYPE_OF___GET_UNDERLYING_TYPE = eINSTANCE.getIsTypeOf__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.ObjectReferenceImpl Object Reference}' class. + * + * + * @see rba.core.impl.ObjectReferenceImpl + * @see rba.core.impl.RBACorePackageImpl#getObjectReference() + * @generated + */ + EClass OBJECT_REFERENCE = eINSTANCE.getObjectReference(); + + /** + * The meta object literal for the 'Ref Object' reference feature. + * + * + * @generated + */ + EReference OBJECT_REFERENCE__REF_OBJECT = eINSTANCE.getObjectReference_RefObject(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation OBJECT_REFERENCE___GET_UNDERLYING_TYPE = eINSTANCE.getObjectReference__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation OBJECT_REFERENCE___GET_EXPRESSION_TEXT = eINSTANCE.getObjectReference__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.PreviousModifierImpl Previous Modifier}' class. + * + * + * @see rba.core.impl.PreviousModifierImpl + * @see rba.core.impl.RBACorePackageImpl#getPreviousModifier() + * @generated + */ + EClass PREVIOUS_MODIFIER = eINSTANCE.getPreviousModifier(); + + /** + * The meta object literal for the 'Obj Reference' containment reference feature. + * + * + * @generated + */ + EReference PREVIOUS_MODIFIER__OBJ_REFERENCE = eINSTANCE.getPreviousModifier_ObjReference(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation PREVIOUS_MODIFIER___GET_SYMBOL = eINSTANCE.getPreviousModifier__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation PREVIOUS_MODIFIER___GET_UNDERLYING_TYPE = eINSTANCE.getPreviousModifier__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation PREVIOUS_MODIFIER___GET_EXPRESSION_TEXT = eINSTANCE.getPreviousModifier__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.GreaterThanOperatorImpl Greater Than Operator}' class. + * + * + * @see rba.core.impl.GreaterThanOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getGreaterThanOperator() + * @generated + */ + EClass GREATER_THAN_OPERATOR = eINSTANCE.getGreaterThanOperator(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation GREATER_THAN_OPERATOR___GET_SYMBOL = eINSTANCE.getGreaterThanOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.MuchGreaterThanOperatorImpl Much Greater Than Operator}' class. + * + * + * @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 'Get Symbol' operation. + * + * + * @generated + */ + EOperation MUCH_GREATER_THAN_OPERATOR___GET_SYMBOL = eINSTANCE.getMuchGreaterThanOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.LowerThanOperatorImpl Lower Than Operator}' class. + * + * + * @see rba.core.impl.LowerThanOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getLowerThanOperator() + * @generated + */ + EClass LOWER_THAN_OPERATOR = eINSTANCE.getLowerThanOperator(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation LOWER_THAN_OPERATOR___GET_SYMBOL = eINSTANCE.getLowerThanOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.ComparisonOperatorImpl Comparison Operator}' class. + * + * + * @see rba.core.impl.ComparisonOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getComparisonOperator() + * @generated + */ + EClass COMPARISON_OPERATOR = eINSTANCE.getComparisonOperator(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation COMPARISON_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getComparisonOperator__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation COMPARISON_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getComparisonOperator__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.EqualToOperatorImpl Equal To Operator}' class. + * + * + * @see rba.core.impl.EqualToOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getEqualToOperator() + * @generated + */ + EClass EQUAL_TO_OPERATOR = eINSTANCE.getEqualToOperator(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation EQUAL_TO_OPERATOR___GET_SYMBOL = eINSTANCE.getEqualToOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.ComparisonAndImpl Comparison And}' class. + * + * + * @see rba.core.impl.ComparisonAndImpl + * @see rba.core.impl.RBACorePackageImpl#getComparisonAnd() + * @generated + */ + EClass COMPARISON_AND = eINSTANCE.getComparisonAnd(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation COMPARISON_AND___GET_SYMBOL = eINSTANCE.getComparisonAnd__GetSymbol(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation COMPARISON_AND___GET_EXPRESSION_TEXT = eINSTANCE.getComparisonAnd__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.LogicalOperatorImpl Logical Operator}' class. + * + * + * @see rba.core.impl.LogicalOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getLogicalOperator() + * @generated + */ + EClass LOGICAL_OPERATOR = eINSTANCE.getLogicalOperator(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation LOGICAL_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getLogicalOperator__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation LOGICAL_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getLogicalOperator__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.AndOperatorImpl And Operator}' class. + * + * + * @see rba.core.impl.AndOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getAndOperator() + * @generated + */ + EClass AND_OPERATOR = eINSTANCE.getAndOperator(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation AND_OPERATOR___GET_SYMBOL = eINSTANCE.getAndOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.OrOperatorImpl Or Operator}' class. + * + * + * @see rba.core.impl.OrOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getOrOperator() + * @generated + */ + EClass OR_OPERATOR = eINSTANCE.getOrOperator(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation OR_OPERATOR___GET_SYMBOL = eINSTANCE.getOrOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.NotOperatorImpl Not Operator}' class. + * + * + * @see rba.core.impl.NotOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getNotOperator() + * @generated + */ + EClass NOT_OPERATOR = eINSTANCE.getNotOperator(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation NOT_OPERATOR___GET_SYMBOL = eINSTANCE.getNotOperator__GetSymbol(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation NOT_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getNotOperator__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.IsEqualToOperatorImpl Is Equal To Operator}' class. + * + * + * @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 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_EQUAL_TO_OPERATOR___GET_SYMBOL = eINSTANCE.getIsEqualToOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.IsGreaterThanOperatorImpl Is Greater Than Operator}' class. + * + * + * @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 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_GREATER_THAN_OPERATOR___GET_SYMBOL = eINSTANCE.getIsGreaterThanOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.IsLowerThanOperatorImpl Is Lower Than Operator}' class. + * + * + * @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 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_LOWER_THAN_OPERATOR___GET_SYMBOL = eINSTANCE.getIsLowerThanOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.IsGreaterThanEqualOperatorImpl Is Greater Than Equal Operator}' class. + * + * + * @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 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_GREATER_THAN_EQUAL_OPERATOR___GET_SYMBOL = eINSTANCE.getIsGreaterThanEqualOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.IsLowerThanEqualOperatorImpl Is Lower Than Equal Operator}' class. + * + * + * @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 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_LOWER_THAN_EQUAL_OPERATOR___GET_SYMBOL = eINSTANCE.getIsLowerThanEqualOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.ArithmeticOperatorImpl Arithmetic Operator}' class. + * + * + * @see rba.core.impl.ArithmeticOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getArithmeticOperator() + * @generated + */ + EClass ARITHMETIC_OPERATOR = eINSTANCE.getArithmeticOperator(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation ARITHMETIC_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getArithmeticOperator__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation ARITHMETIC_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getArithmeticOperator__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.PlusOperatorImpl Plus Operator}' class. + * + * + * @see rba.core.impl.PlusOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getPlusOperator() + * @generated + */ + EClass PLUS_OPERATOR = eINSTANCE.getPlusOperator(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation PLUS_OPERATOR___GET_SYMBOL = eINSTANCE.getPlusOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.ImpliesOperatorImpl Implies Operator}' class. + * + * + * @see rba.core.impl.ImpliesOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getImpliesOperator() + * @generated + */ + EClass IMPLIES_OPERATOR = eINSTANCE.getImpliesOperator(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IMPLIES_OPERATOR___GET_SYMBOL = eINSTANCE.getImpliesOperator__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.ContentOperatorImpl Content Operator}' class. + * + * + * @see rba.core.impl.ContentOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getContentOperator() + * @generated + */ + EClass CONTENT_OPERATOR = eINSTANCE.getContentOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation CONTENT_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getContentOperator__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.IsActiveImpl Is Active}' class. + * + * + * @see rba.core.impl.IsActiveImpl + * @see rba.core.impl.RBACorePackageImpl#getIsActive() + * @generated + */ + EClass IS_ACTIVE = eINSTANCE.getIsActive(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_ACTIVE___GET_SYMBOL = eINSTANCE.getIsActive__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_ACTIVE___GET_UNDERLYING_TYPE = eINSTANCE.getIsActive__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.GetAllocatablesImpl Get Allocatables}' class. + * + * + * @see rba.core.impl.GetAllocatablesImpl + * @see rba.core.impl.RBACorePackageImpl#getGetAllocatables() + * @generated + */ + EClass GET_ALLOCATABLES = eINSTANCE.getGetAllocatables(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation GET_ALLOCATABLES___GET_SYMBOL = eINSTANCE.getGetAllocatables__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation GET_ALLOCATABLES___GET_UNDERLYING_TYPE = eINSTANCE.getGetAllocatables__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.HasBeenDisplayedImpl Has Been Displayed}' class. + * + * + * @see rba.core.impl.HasBeenDisplayedImpl + * @see rba.core.impl.RBACorePackageImpl#getHasBeenDisplayed() + * @generated + */ + EClass HAS_BEEN_DISPLAYED = eINSTANCE.getHasBeenDisplayed(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation HAS_BEEN_DISPLAYED___GET_SYMBOL = eINSTANCE.getHasBeenDisplayed__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation HAS_BEEN_DISPLAYED___GET_UNDERLYING_TYPE = eINSTANCE.getHasBeenDisplayed__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.ActiveStateImpl Active State}' class. + * + * + * @see rba.core.impl.ActiveStateImpl + * @see rba.core.impl.RBACorePackageImpl#getActiveState() + * @generated + */ + EClass ACTIVE_STATE = eINSTANCE.getActiveState(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation ACTIVE_STATE___GET_SYMBOL = eINSTANCE.getActiveState__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation ACTIVE_STATE___GET_UNDERLYING_TYPE = eINSTANCE.getActiveState__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.ObjectCompareImpl Object Compare}' class. + * + * + * @see rba.core.impl.ObjectCompareImpl + * @see rba.core.impl.RBACorePackageImpl#getObjectCompare() + * @generated + */ + EClass OBJECT_COMPARE = eINSTANCE.getObjectCompare(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation OBJECT_COMPARE___GET_SYMBOL = eINSTANCE.getObjectCompare__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation OBJECT_COMPARE___GET_UNDERLYING_TYPE = eINSTANCE.getObjectCompare__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation OBJECT_COMPARE___GET_EXPRESSION_TEXT = eINSTANCE.getObjectCompare__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.ThatOfOperatorImpl That Of Operator}' class. + * + * + * @see rba.core.impl.ThatOfOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getThatOfOperator() + * @generated + */ + EClass THAT_OF_OPERATOR = eINSTANCE.getThatOfOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation THAT_OF_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getThatOfOperator__GetExpressionText(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation THAT_OF_OPERATOR___GET_SYMBOL = eINSTANCE.getThatOfOperator__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation THAT_OF_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getThatOfOperator__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.ValueExpressionImpl Value Expression}' class. + * + * + * @see rba.core.impl.ValueExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getValueExpression() + * @generated + */ + EClass VALUE_EXPRESSION = eINSTANCE.getValueExpression(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation VALUE_EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getValueExpression__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Value' operation. + * + * + * @generated + */ + EOperation VALUE_EXPRESSION___GET_EXPRESSION_VALUE = eINSTANCE.getValueExpression__GetExpressionValue(); + + /** + * The meta object literal for the 'Get Type' operation. + * + * + * @generated + */ + EOperation VALUE_EXPRESSION___GET_TYPE = eINSTANCE.getValueExpression__GetType(); + + /** + * The meta object literal for the '{@link rba.core.impl.MaxValueImpl Max Value}' class. + * + * + * @see rba.core.impl.MaxValueImpl + * @see rba.core.impl.RBACorePackageImpl#getMaxValue() + * @generated + */ + EClass MAX_VALUE = eINSTANCE.getMaxValue(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation MAX_VALUE___GET_EXPRESSION_TEXT = eINSTANCE.getMaxValue__GetExpressionText(); + + /** + * The meta object literal for the 'Get Expression Value' operation. + * + * + * @generated + */ + EOperation MAX_VALUE___GET_EXPRESSION_VALUE = eINSTANCE.getMaxValue__GetExpressionValue(); + + /** + * The meta object literal for the '{@link rba.core.impl.MinValueImpl Min Value}' class. + * + * + * @see rba.core.impl.MinValueImpl + * @see rba.core.impl.RBACorePackageImpl#getMinValue() + * @generated + */ + EClass MIN_VALUE = eINSTANCE.getMinValue(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation MIN_VALUE___GET_EXPRESSION_TEXT = eINSTANCE.getMinValue__GetExpressionText(); + + /** + * The meta object literal for the 'Get Expression Value' operation. + * + * + * @generated + */ + EOperation MIN_VALUE___GET_EXPRESSION_VALUE = eINSTANCE.getMinValue__GetExpressionValue(); + + /** + * The meta object literal for the '{@link rba.core.impl.NoneValueImpl None Value}' class. + * + * + * @see rba.core.impl.NoneValueImpl + * @see rba.core.impl.RBACorePackageImpl#getNoneValue() + * @generated + */ + EClass NONE_VALUE = eINSTANCE.getNoneValue(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation NONE_VALUE___GET_EXPRESSION_TEXT = eINSTANCE.getNoneValue__GetExpressionText(); + + /** + * The meta object literal for the 'Get Expression Value' operation. + * + * + * @generated + */ + EOperation NONE_VALUE___GET_EXPRESSION_VALUE = eINSTANCE.getNoneValue__GetExpressionValue(); + + /** + * The meta object literal for the '{@link rba.core.impl.StandardValueImpl Standard Value}' class. + * + * + * @see rba.core.impl.StandardValueImpl + * @see rba.core.impl.RBACorePackageImpl#getStandardValue() + * @generated + */ + EClass STANDARD_VALUE = eINSTANCE.getStandardValue(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation STANDARD_VALUE___GET_EXPRESSION_TEXT = eINSTANCE.getStandardValue__GetExpressionText(); + + /** + * The meta object literal for the 'Get Expression Value' operation. + * + * + * @generated + */ + EOperation STANDARD_VALUE___GET_EXPRESSION_VALUE = eINSTANCE.getStandardValue__GetExpressionValue(); + + /** + * The meta object literal for the '{@link rba.core.impl.IntegerValueImpl Integer Value}' class. + * + * + * @see rba.core.impl.IntegerValueImpl + * @see rba.core.impl.RBACorePackageImpl#getIntegerValue() + * @generated + */ + EClass INTEGER_VALUE = eINSTANCE.getIntegerValue(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute INTEGER_VALUE__VALUE = eINSTANCE.getIntegerValue_Value(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation INTEGER_VALUE___GET_EXPRESSION_TEXT = eINSTANCE.getIntegerValue__GetExpressionText(); + + /** + * The meta object literal for the 'Get Expression Value' operation. + * + * + * @generated + */ + EOperation INTEGER_VALUE___GET_EXPRESSION_VALUE = eINSTANCE.getIntegerValue__GetExpressionValue(); + + /** + * The meta object literal for the '{@link rba.core.impl.EnumExpressionImpl Enum Expression}' class. + * + * + * @see rba.core.impl.EnumExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getEnumExpression() + * @generated + */ + EClass ENUM_EXPRESSION = eINSTANCE.getEnumExpression(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation ENUM_EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getEnumExpression__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Value' operation. + * + * + * @generated + */ + EOperation ENUM_EXPRESSION___GET_EXPRESSION_VALUE = eINSTANCE.getEnumExpression__GetExpressionValue(); + + /** + * The meta object literal for the 'Get Type' operation. + * + * + * @generated + */ + EOperation ENUM_EXPRESSION___GET_TYPE = eINSTANCE.getEnumExpression__GetType(); + + /** + * The meta object literal for the '{@link rba.core.impl.LoserTypeExpressionImpl Loser Type Expression}' class. + * + * + * @see rba.core.impl.LoserTypeExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getLoserTypeExpression() + * @generated + */ + EClass LOSER_TYPE_EXPRESSION = eINSTANCE.getLoserTypeExpression(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute LOSER_TYPE_EXPRESSION__VALUE = eINSTANCE.getLoserTypeExpression_Value(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation LOSER_TYPE_EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE.getLoserTypeExpression__GetExpressionText(); + + /** + * The meta object literal for the 'Get Expression Value' operation. + * + * + * @generated + */ + EOperation LOSER_TYPE_EXPRESSION___GET_EXPRESSION_VALUE = eINSTANCE + .getLoserTypeExpression__GetExpressionValue(); + + /** + * The meta object literal for the '{@link rba.core.impl.ArbitrationPolicyExpressionImpl Arbitration Policy Expression}' class. + * + * + * @see rba.core.impl.ArbitrationPolicyExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getArbitrationPolicyExpression() + * @generated + */ + EClass ARBITRATION_POLICY_EXPRESSION = eINSTANCE.getArbitrationPolicyExpression(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute ARBITRATION_POLICY_EXPRESSION__VALUE = eINSTANCE.getArbitrationPolicyExpression_Value(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE + .getArbitrationPolicyExpression__GetExpressionText(); + + /** + * The meta object literal for the 'Get Expression Value' operation. + * + * + * @generated + */ + EOperation ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_VALUE = eINSTANCE + .getArbitrationPolicyExpression__GetExpressionValue(); + + /** + * The meta object literal for the '{@link rba.core.impl.SetExpressionImpl Set Expression}' class. + * + * + * @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 Set Operator}' class. + * + * + * @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 Size Operator}' class. + * + * + * @see rba.core.impl.SizeOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getSizeOperator() + * @generated + */ + EClass SIZE_OPERATOR = eINSTANCE.getSizeOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation SIZE_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getSizeOperator__GetExpressionText(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation SIZE_OPERATOR___GET_SYMBOL = eINSTANCE.getSizeOperator__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation SIZE_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getSizeOperator__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.ExistsOperatorImpl Exists Operator}' class. + * + * + * @see rba.core.impl.ExistsOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getExistsOperator() + * @generated + */ + EClass EXISTS_OPERATOR = eINSTANCE.getExistsOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation EXISTS_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getExistsOperator__GetExpressionText(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation EXISTS_OPERATOR___GET_SYMBOL = eINSTANCE.getExistsOperator__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation EXISTS_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getExistsOperator__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.ForAllOperatorImpl For All Operator}' class. + * + * + * @see rba.core.impl.ForAllOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getForAllOperator() + * @generated + */ + EClass FOR_ALL_OPERATOR = eINSTANCE.getForAllOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation FOR_ALL_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getForAllOperator__GetExpressionText(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation FOR_ALL_OPERATOR___GET_SYMBOL = eINSTANCE.getForAllOperator__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation FOR_ALL_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getForAllOperator__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.MaxOperatorImpl Max Operator}' class. + * + * + * @see rba.core.impl.MaxOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getMaxOperator() + * @generated + */ + EClass MAX_OPERATOR = eINSTANCE.getMaxOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation MAX_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getMaxOperator__GetExpressionText(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation MAX_OPERATOR___GET_SYMBOL = eINSTANCE.getMaxOperator__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation MAX_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getMaxOperator__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.MinOperatorImpl Min Operator}' class. + * + * + * @see rba.core.impl.MinOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getMinOperator() + * @generated + */ + EClass MIN_OPERATOR = eINSTANCE.getMinOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation MIN_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getMinOperator__GetExpressionText(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation MIN_OPERATOR___GET_SYMBOL = eINSTANCE.getMinOperator__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation MIN_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getMinOperator__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.SelectOperatorImpl Select Operator}' class. + * + * + * @see rba.core.impl.SelectOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getSelectOperator() + * @generated + */ + EClass SELECT_OPERATOR = eINSTANCE.getSelectOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation SELECT_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getSelectOperator__GetExpressionText(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation SELECT_OPERATOR___GET_SYMBOL = eINSTANCE.getSelectOperator__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation SELECT_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getSelectOperator__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.SetOfOperatorImpl Set Of Operator}' class. + * + * + * @see rba.core.impl.SetOfOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getSetOfOperator() + * @generated + */ + EClass SET_OF_OPERATOR = eINSTANCE.getSetOfOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation SET_OF_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getSetOfOperator__GetExpressionText(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation SET_OF_OPERATOR___GET_SYMBOL = eINSTANCE.getSetOfOperator__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation SET_OF_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getSetOfOperator__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.LambdaExpressionImpl Lambda Expression}' class. + * + * + * @see rba.core.impl.LambdaExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getLambdaExpression() + * @generated + */ + EClass LAMBDA_EXPRESSION = eINSTANCE.getLambdaExpression(); + + /** + * The meta object literal for the 'Context' container reference feature. + * + * + * @generated + */ + EReference LAMBDA_EXPRESSION__CONTEXT = eINSTANCE.getLambdaExpression_Context(); + + /** + * The meta object literal for the 'X' containment reference feature. + * + * + * @generated + */ + EReference LAMBDA_EXPRESSION__X = eINSTANCE.getLambdaExpression_X(); + + /** + * The meta object literal for the 'Body Text' containment reference feature. + * + * + * @generated + */ + EReference LAMBDA_EXPRESSION__BODY_TEXT = eINSTANCE.getLambdaExpression_BodyText(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation LAMBDA_EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE.getLambdaExpression__GetExpressionText(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation LAMBDA_EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getLambdaExpression__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.VariableImpl Variable}' class. + * + * + * @see rba.core.impl.VariableImpl + * @see rba.core.impl.RBACorePackageImpl#getVariable() + * @generated + */ + EClass VARIABLE = eINSTANCE.getVariable(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation VARIABLE___GET_EXPRESSION_TYPE = eINSTANCE.getVariable__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.core.impl.LambdaContextImpl Lambda Context}' class. + * + * + * @see rba.core.impl.LambdaContextImpl + * @see rba.core.impl.RBACorePackageImpl#getLambdaContext() + * @generated + */ + EClass LAMBDA_CONTEXT = eINSTANCE.getLambdaContext(); + + /** + * The meta object literal for the 'Lambda' containment reference feature. + * + * + * @generated + */ + EReference LAMBDA_CONTEXT__LAMBDA = eINSTANCE.getLambdaContext_Lambda(); + + /** + * The meta object literal for the 'Get Context Type' operation. + * + * + * @generated + */ + EOperation LAMBDA_CONTEXT___GET_CONTEXT_TYPE = eINSTANCE.getLambdaContext__GetContextType(); + + /** + * The meta object literal for the '{@link rba.core.impl.IfStatementImpl If Statement}' class. + * + * + * @see rba.core.impl.IfStatementImpl + * @see rba.core.impl.RBACorePackageImpl#getIfStatement() + * @generated + */ + EClass IF_STATEMENT = eINSTANCE.getIfStatement(); + + /** + * The meta object literal for the 'Condition' containment reference feature. + * + * + * @generated + */ + EReference IF_STATEMENT__CONDITION = eINSTANCE.getIfStatement_Condition(); + + /** + * The meta object literal for the 'Then Expression' containment reference feature. + * + * + * @generated + */ + EReference IF_STATEMENT__THEN_EXPRESSION = eINSTANCE.getIfStatement_ThenExpression(); + + /** + * The meta object literal for the 'Else Expression' containment reference feature. + * + * + * @generated + */ + EReference IF_STATEMENT__ELSE_EXPRESSION = eINSTANCE.getIfStatement_ElseExpression(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IF_STATEMENT___GET_UNDERLYING_TYPE = eINSTANCE.getIfStatement__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation IF_STATEMENT___GET_EXPRESSION_TEXT = eINSTANCE.getIfStatement__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.SceneOperatorImpl Scene Operator}' class. + * + * + * @see rba.core.impl.SceneOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getSceneOperator() + * @generated + */ + EClass SCENE_OPERATOR = eINSTANCE.getSceneOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation SCENE_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getSceneOperator__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.IsOnImpl Is On}' class. + * + * + * @see rba.core.impl.IsOnImpl + * @see rba.core.impl.RBACorePackageImpl#getIsOn() + * @generated + */ + EClass IS_ON = eINSTANCE.getIsOn(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_ON___GET_SYMBOL = eINSTANCE.getIsOn__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_ON___GET_UNDERLYING_TYPE = eINSTANCE.getIsOn__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.AllocatableOperatorImpl Allocatable Operator}' class. + * + * + * @see rba.core.impl.AllocatableOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getAllocatableOperator() + * @generated + */ + EClass ALLOCATABLE_OPERATOR = eINSTANCE.getAllocatableOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getAllocatableOperator__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.AllocatedContentImpl Allocated Content}' class. + * + * + * @see rba.core.impl.AllocatedContentImpl + * @see rba.core.impl.RBACorePackageImpl#getAllocatedContent() + * @generated + */ + EClass ALLOCATED_CONTENT = eINSTANCE.getAllocatedContent(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation ALLOCATED_CONTENT___GET_SYMBOL = eINSTANCE.getAllocatedContent__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation ALLOCATED_CONTENT___GET_UNDERLYING_TYPE = eINSTANCE.getAllocatedContent__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.ContentValueImpl Content Value}' class. + * + * + * @see rba.core.impl.ContentValueImpl + * @see rba.core.impl.RBACorePackageImpl#getContentValue() + * @generated + */ + EClass CONTENT_VALUE = eINSTANCE.getContentValue(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation CONTENT_VALUE___GET_SYMBOL = eINSTANCE.getContentValue__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation CONTENT_VALUE___GET_UNDERLYING_TYPE = eINSTANCE.getContentValue__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.GetContentsListImpl Get Contents List}' class. + * + * + * @see rba.core.impl.GetContentsListImpl + * @see rba.core.impl.RBACorePackageImpl#getGetContentsList() + * @generated + */ + EClass GET_CONTENTS_LIST = eINSTANCE.getGetContentsList(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation GET_CONTENTS_LIST___GET_SYMBOL = eINSTANCE.getGetContentsList__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation GET_CONTENTS_LIST___GET_UNDERLYING_TYPE = eINSTANCE.getGetContentsList__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.ActiveContentsImpl Active Contents}' class. + * + * + * @see rba.core.impl.ActiveContentsImpl + * @see rba.core.impl.RBACorePackageImpl#getActiveContents() + * @generated + */ + EClass ACTIVE_CONTENTS = eINSTANCE.getActiveContents(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation ACTIVE_CONTENTS___GET_SYMBOL = eINSTANCE.getActiveContents__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation ACTIVE_CONTENTS___GET_UNDERLYING_TYPE = eINSTANCE.getActiveContents__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.PropertyOperatorImpl Property Operator}' class. + * + * + * @see rba.core.impl.PropertyOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getPropertyOperator() + * @generated + */ + EClass PROPERTY_OPERATOR = eINSTANCE.getPropertyOperator(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation PROPERTY_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getPropertyOperator__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation PROPERTY_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getPropertyOperator__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.GetPropertyImpl Get Property}' class. + * + * + * @see rba.core.impl.GetPropertyImpl + * @see rba.core.impl.RBACorePackageImpl#getGetProperty() + * @generated + */ + EClass GET_PROPERTY = eINSTANCE.getGetProperty(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation GET_PROPERTY___GET_SYMBOL = eINSTANCE.getGetProperty__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation GET_PROPERTY___GET_UNDERLYING_TYPE = eINSTANCE.getGetProperty__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.StateValueImpl State Value}' class. + * + * + * @see rba.core.impl.StateValueImpl + * @see rba.core.impl.RBACorePackageImpl#getStateValue() + * @generated + */ + EClass STATE_VALUE = eINSTANCE.getStateValue(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation STATE_VALUE___GET_SYMBOL = eINSTANCE.getStateValue__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation STATE_VALUE___GET_UNDERLYING_TYPE = eINSTANCE.getStateValue__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.HasComeLaterThanImpl Has Come Later Than}' class. + * + * + * @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 'Get Symbol' operation. + * + * + * @generated + */ + EOperation HAS_COME_LATER_THAN___GET_SYMBOL = eINSTANCE.getHasComeLaterThan__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation HAS_COME_LATER_THAN___GET_UNDERLYING_TYPE = eINSTANCE.getHasComeLaterThan__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation HAS_COME_LATER_THAN___GET_EXPRESSION_TEXT = eINSTANCE.getHasComeLaterThan__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.HasComeEarlierThanImpl Has Come Earlier Than}' class. + * + * + * @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 'Get Symbol' operation. + * + * + * @generated + */ + EOperation HAS_COME_EARLIER_THAN___GET_SYMBOL = eINSTANCE.getHasComeEarlierThan__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation HAS_COME_EARLIER_THAN___GET_UNDERLYING_TYPE = eINSTANCE.getHasComeEarlierThan__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation HAS_COME_EARLIER_THAN___GET_EXPRESSION_TEXT = eINSTANCE.getHasComeEarlierThan__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.SugarExpression Sugar Expression}' class. + * + * + * @see rba.core.SugarExpression + * @see rba.core.impl.RBACorePackageImpl#getSugarExpression() + * @generated + */ + EClass SUGAR_EXPRESSION = eINSTANCE.getSugarExpression(); + + /** + * The meta object literal for the 'Can Expand' operation. + * + * + * @generated + */ + EOperation SUGAR_EXPRESSION___CAN_EXPAND = eINSTANCE.getSugarExpression__CanExpand(); + + /** + * The meta object literal for the 'Get Expanded' operation. + * + * + * @generated + */ + EOperation SUGAR_EXPRESSION___GET_EXPANDED = eINSTANCE.getSugarExpression__GetExpanded(); + + /** + * The meta object literal for the '{@link rba.core.SugarExpressionBase Sugar Expression Base}' class. + * + * + * @see rba.core.SugarExpressionBase + * @see rba.core.impl.RBACorePackageImpl#getSugarExpressionBase() + * @generated + */ + EClass SUGAR_EXPRESSION_BASE = eINSTANCE.getSugarExpressionBase(); + + /** + * The meta object literal for the 'Can Expand' operation. + * + * + * @generated + */ + EOperation SUGAR_EXPRESSION_BASE___CAN_EXPAND = eINSTANCE.getSugarExpressionBase__CanExpand(); + + /** + * The meta object literal for the '{@link rba.core.impl.ObjectCompareNotImpl Object Compare Not}' class. + * + * + * @see rba.core.impl.ObjectCompareNotImpl + * @see rba.core.impl.RBACorePackageImpl#getObjectCompareNot() + * @generated + */ + EClass OBJECT_COMPARE_NOT = eINSTANCE.getObjectCompareNot(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation OBJECT_COMPARE_NOT___GET_SYMBOL = eINSTANCE.getObjectCompareNot__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation OBJECT_COMPARE_NOT___GET_UNDERLYING_TYPE = eINSTANCE.getObjectCompareNot__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation OBJECT_COMPARE_NOT___GET_EXPRESSION_TEXT = eINSTANCE.getObjectCompareNot__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.IsAllocatedToImpl Is Allocated To}' class. + * + * + * @see rba.core.impl.IsAllocatedToImpl + * @see rba.core.impl.RBACorePackageImpl#getIsAllocatedTo() + * @generated + */ + EClass IS_ALLOCATED_TO = eINSTANCE.getIsAllocatedTo(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_ALLOCATED_TO___GET_SYMBOL = eINSTANCE.getIsAllocatedTo__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_ALLOCATED_TO___GET_UNDERLYING_TYPE = eINSTANCE.getIsAllocatedTo__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation IS_ALLOCATED_TO___GET_EXPRESSION_TEXT = eINSTANCE.getIsAllocatedTo__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.IsChangedImpl Is Changed}' class. + * + * + * @see rba.core.impl.IsChangedImpl + * @see rba.core.impl.RBACorePackageImpl#getIsChanged() + * @generated + */ + EClass IS_CHANGED = eINSTANCE.getIsChanged(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_CHANGED___GET_SYMBOL = eINSTANCE.getIsChanged__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_CHANGED___GET_UNDERLYING_TYPE = eINSTANCE.getIsChanged__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.core.impl.IsTranslatedToImpl Is Translated To}' class. + * + * + * @see rba.core.impl.IsTranslatedToImpl + * @see rba.core.impl.RBACorePackageImpl#getIsTranslatedTo() + * @generated + */ + EClass IS_TRANSLATED_TO = eINSTANCE.getIsTranslatedTo(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_TRANSLATED_TO___GET_SYMBOL = eINSTANCE.getIsTranslatedTo__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_TRANSLATED_TO___GET_UNDERLYING_TYPE = eINSTANCE.getIsTranslatedTo__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation IS_TRANSLATED_TO___GET_EXPRESSION_TEXT = eINSTANCE.getIsTranslatedTo__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.GetStateImpl Get State}' class. + * + * + * @see rba.core.impl.GetStateImpl + * @see rba.core.impl.RBACorePackageImpl#getGetState() + * @generated + */ + EClass GET_STATE = eINSTANCE.getGetState(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation GET_STATE___GET_SYMBOL = eINSTANCE.getGetState__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.core.impl.ContentStateOperatorImpl Content State Operator}' class. + * + * + * @see rba.core.impl.ContentStateOperatorImpl + * @see rba.core.impl.RBACorePackageImpl#getContentStateOperator() + * @generated + */ + EClass CONTENT_STATE_OPERATOR = eINSTANCE.getContentStateOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation CONTENT_STATE_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE + .getContentStateOperator__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.impl.NullExpressionImpl Null Expression}' class. + * + * + * @see rba.core.impl.NullExpressionImpl + * @see rba.core.impl.RBACorePackageImpl#getNullExpression() + * @generated + */ + EClass NULL_EXPRESSION = eINSTANCE.getNullExpression(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation NULL_EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getNullExpression__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation NULL_EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE.getNullExpression__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.core.ArbitrationPolicy Arbitration Policy}' enum. + * + * + * @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 Expression Type}' enum. + * + * + * @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 Loser Type}' enum. + * + * + * @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; + +/** + * + * A representation of the model object 'Rule Object'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.RuleObject#getTags Tags}
  • + *
+ * + * @see rba.core.RBACorePackage#getRuleObject() + * @model abstract="true" + * @generated + */ +public interface RuleObject extends PackagableElement { + /** + * Returns the value of the 'Tags' containment reference list. + * The list contents are of type {@link rba.core.Tag}. + * + * + * + * + * + * @return the value of the 'Tags' containment reference list. + * @see rba.core.RBACorePackage#getRuleObject_Tags() + * @model containment="true" + * @generated + */ + EList getTags(); + + /** + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'Scene'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.Scene#isGlobal Global}
  • + *
  • {@link rba.core.Scene#getProperties Properties}
  • + *
+ * + * @see rba.core.RBACorePackage#getScene() + * @model + * @generated + */ +public interface Scene extends AbstractScene { + /** + * Returns the value of the 'Global' attribute. + * The default value is "false". + * + * + * + * + * + * @return the value of the 'Global' 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 Global}' attribute. + * + * + * @param value the new value of the 'Global' attribute. + * @see #isGlobal() + * @generated + */ + void setGlobal(boolean value); + + /** + * Returns the value of the 'Properties' 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 Owner}'. + * + * + * + * + * + * @return the value of the 'Properties' containment reference list. + * @see rba.core.RBACorePackage#getScene_Properties() + * @see rba.core.AbstractProperty#getOwner + * @model opposite="owner" containment="true" + * @generated + */ + EList getProperties(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Scene Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getSceneOperator() + * @model abstract="true" + * @generated + */ +public interface SceneOperator extends Operator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Select Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getSelectOperator() + * @model + * @generated + */ +public interface SelectOperator extends LambdaContext { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nrba.core.LambdaExpression lambda = getLambda();\r\nexpressionText.append(expressions.size() > 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(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".select\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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 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; + +/** + * + * A representation of the model object 'Set Expression'. + * + * + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'Set Of Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getSetOfOperator() + * @model + * @generated + */ +public interface SetOfOperator extends Operator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(\"{\");\r\nfor (int i = 0; i < 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(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='EList<rba.core.Expression> expressions = getOperand();\r\nif (!expressions.isEmpty() && 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; + +/** + * + * A representation of the model object 'Set Operator'. + * + * + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'Set Property'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getSetProperty() + * @model + * @generated + */ +public interface SetProperty extends PropertyOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".set\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Size Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getSizeOperator() + * @model + * @generated + */ +public interface SizeOperator extends SetOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nreturn expressionText.toString();'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".size()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Standard Value'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getStandardValue() + * @model + * @generated + */ +public interface StandardValue extends ValueExpression { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"STANDARD\";'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'State'. + * + * + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'State Value'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getStateValue() + * @model + * @generated + */ +public interface StateValue extends ContentOperator { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".stateValue()\"; //$NON-NLS-1$'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @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; + +/** + * + * A representation of the model object 'Stereotype'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.Stereotype#getTargetModelName Target Model Name}
  • + *
  • {@link rba.core.Stereotype#getVariables Variables}
  • + *
  • {@link rba.core.Stereotype#getBodyText Body Text}
  • + *
+ * + * @see rba.core.RBACorePackage#getStereotype() + * @model + * @generated + */ +public interface Stereotype extends PackagableElement { + /** + * Returns the value of the 'Target Model Name' attribute. + * + * + * + * + * + * @return the value of the 'Target Model Name' 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 Target Model Name}' attribute. + * + * + * @param value the new value of the 'Target Model Name' attribute. + * @see #getTargetModelName() + * @generated + */ + void setTargetModelName(String value); + + /** + * Returns the value of the 'Variables' containment reference list. + * The list contents are of type {@link rba.core.Variable}. + * + * + * + * + * + * @return the value of the 'Variables' containment reference list. + * @see rba.core.RBACorePackage#getStereotype_Variables() + * @model containment="true" + * @generated + */ + EList getVariables(); + + /** + * Returns the value of the 'Body Text' attribute. + * + * + * + * + * + * @return the value of the 'Body Text' 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 Body Text}' attribute. + * + * + * @param value the new value of the 'Body Text' 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; + +/** + * + * A representation of the model object 'Sugar Expression'. + * + * + * + * @see rba.core.RBACorePackage#getSugarExpression() + * @model interface="true" abstract="true" + * @generated + */ +public interface SugarExpression extends EObject { + /** + * + * + * + * + * + * @model required="true" + * @generated + */ + boolean canExpand(); + + /** + * + * + * + * @return Expression that expanded the syntax sugar expression. + * + * @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; + +/** + * + * A representation of the model object 'Sugar Expression Base'. + * + * + * + * @see rba.core.RBACorePackage#getSugarExpressionBase() + * @model interface="true" abstract="true" + * @generated + */ +public interface SugarExpressionBase extends SugarExpression { + /** + * + * + * @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; + +/** + * + * A representation of the model object 'Tag'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.core.Tag#getValues Values}
  • + *
+ * + * @see rba.core.RBACorePackage#getTag() + * @model + * @generated + */ +public interface Tag extends NamedElement { + /** + * Returns the value of the 'Values' attribute list. + * The list contents are of type {@link java.lang.String}. + * + * + * + * + * + * @return the value of the 'Values' attribute list. + * @see rba.core.RBACorePackage#getTag_Values() + * @model unique="false" + * @generated + */ + EList 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; + +/** + * + * A representation of the model object 'That Of Operator'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getThatOfOperator() + * @model + * @generated + */ +public interface ThatOfOperator extends Operator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nreturn expressionText.toString();'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"That of \";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Value Expression'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getValueExpression() + * @model abstract="true" + * @generated + */ +public interface ValueExpression extends Expression { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.VALUE;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * + * + * + * @model kind="operation" required="true" + * @generated + */ + int getExpressionValue(); + + /** + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'Variable'. + * + * + * + * + * + * + * + * @see rba.core.RBACorePackage#getVariable() + * @model + * @generated + */ +public interface Variable extends RuleObject { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='<%org.eclipse.emf.ecore.EObject%> container = eContainer();\r\nif(container instanceof <%rba.core.LambdaExpression%>) {\r\n container = container.eContainer();\r\n if(container instanceof <%rba.core.LambdaContext%>) {\r\n <%java.util.List%><Expression> operands = ((LambdaContext) container).getOperand();\r\n if (operands.size() > 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 <%rba.core.LetStatement%>) {\r\n <%rba.core.Expression%> 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 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 eContents() { + return object.eContents(); + } + + @Override + public TreeIterator eAllContents() { + return object.eAllContents(); + } + + @Override + public boolean eIsProxy() { + return object.eIsProxy(); + } + + @Override + public EList 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 extends ComparisonOperatorEvaluator implements ComparisonAnd { + + public ComparisonAndEvaluator(ComparisonAnd o) { + super(o); + } + + @Override + public boolean evaluate(ValueSortedList list) { + // TODO Auto-generated method stub + return false; + } + + @Override + public int suggestIndex(ValueSortedList 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 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 extends ExpressionEvaluator 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 list); + + /** + * @param list + * @return -1 if it has no suggestion 9999 implies MAX group (last index) + */ + abstract public int suggestIndex(ValueSortedList list); + + @Override + public EList 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 extends ComparisonOperatorEvaluator implements EqualToOperator { + + protected EqualToOperatorEvaluator(ComparisonOperator o) { + super(o); + } + + @Override + public boolean evaluate(ValueSortedList list) { + // TODO Auto-generated method stub + return false; + } + + @Override + public int suggestIndex(ValueSortedList 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 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 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 extends ComparisonOperatorEvaluator implements GreaterThanOperator { + + protected GreaterThanOperatorEvaluator(GreaterThanOperator o) { + super(o); + } + + @Override + public boolean evaluate(ValueSortedList 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 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 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 extends ComparisonOperatorEvaluator implements MuchGreaterThanOperator { + + static int MUCH_GAP = 10; + + public MuchGreaterThanOperatorEvaluator(MuchGreaterThanOperator o) { + super(o); + } + + @Override + public boolean evaluate(ValueSortedList 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 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 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 { + private String name; + + private Collection member; + + public ValueGroup(String name) { + this.name = name; + member = new ArrayList(); + } + + 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 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 { + private List> list; + + private Collection unsorted; + + public ValueSortedList(Collection originalList) { + list = new ArrayList>(); + list.add(new ValueGroup("MIN")); + list.add(new ValueGroup("1")); + list.add(new ValueGroup("MAX")); + unsorted = new ArrayList(originalList); + sort(); + } + + public void add(T o) { + unsorted.add(o); + sort(); + } + + public void addAll(Collection 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 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 newGroup = new ValueGroup(Integer.toString(i)); + list.add(i, newGroup); + } + } + + list.get(index).add(e); + + } + + public List sortedList() { + List result = new ArrayList(); + for (ValueGroup i : list) { + result.addAll(i.getMember()); + } + return result; + } + + public List> getGroupList() { + return list; + } + + abstract protected Expression getValueExpression(T e); + + public int getGroupIndexOf(T e) { + for (ValueGroup i : list) { + if (i.getMember().contains(e)) { + return list.indexOf(i); + } + } + return -1; + } + + public int getGroupIndexOf(String groupName) { + for (ValueGroup i : list) { + if (i.getName().contentEquals(groupName)) { + return list.indexOf(i); + } + } + return -1; + } + + public ComparisonOperatorEvaluator createEvaluator(ComparisonOperator e) { + ComparisonOperatorEvaluator evaluator; + if (e instanceof GreaterThanOperator) { + evaluator = new GreaterThanOperatorEvaluator((GreaterThanOperator) e); + } else if (e instanceof MuchGreaterThanOperator) { + evaluator = new MuchGreaterThanOperatorEvaluator((MuchGreaterThanOperator) e); + } else if (e instanceof ComparisonAnd) { + evaluator = new ComparisonAndEvaluator((ComparisonAnd) e); + } else if (e instanceof EqualToOperator) { + evaluator = new EqualToOperatorEvaluator((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; + +/** + * An implementation of the model object 'Abstract Allocatable'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.AbstractAllocatableImpl#getContents Contents}
  • + *
  • {@link rba.core.impl.AbstractAllocatableImpl#getAllocatableGroup Allocatable Group}
  • + *
+ * + * @generated + */ +public abstract class AbstractAllocatableImpl extends RuleObjectImpl implements AbstractAllocatable { + /** + * The cached value of the '{@link #getContents() Contents}' reference list. + * + * @see #getContents() + * @generated + * @ordered + */ + protected EList contents; + + /** + * The cached value of the '{@link #getAllocatableGroup() Allocatable Group}' reference list. + * + * @see #getAllocatableGroup() + * @generated + * @ordered + */ + protected EList allocatableGroup; + + /** + * + * @generated + */ + protected AbstractAllocatableImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ABSTRACT_ALLOCATABLE; + } + + /** + * + * @generated + */ + public EList getContents() { + if (contents == null) { + contents = new EObjectWithInverseResolvingEList.ManyInverse(AbstractContent.class, this, + RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS, RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE); + } + return contents; + } + + /** + * + * @generated + */ + public EList getAllocatableGroup() { + if (allocatableGroup == null) { + allocatableGroup = new EObjectWithInverseResolvingEList.ManyInverse(AllocatableSet.class, + this, RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP, + RBACorePackage.ALLOCATABLE_SET__TARGET); + } + return allocatableGroup; + } + + /** + * + * @generated + */ + public EList getContentsList() { + java.util.Set contents = new java.util.LinkedHashSet(); + getContents().forEach(content -> contents.addAll(content.collectLeafContents())); + getAllocatableGroup().forEach(allocatableSet -> contents.addAll(allocatableSet.getContentsList())); + return new org.eclipse.emf.common.util.BasicEList(contents); + } + + /** + * + * @generated + */ + public EList collectLeafAllocatable() { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS: + return ((InternalEList) (InternalEList) getContents()).basicAdd(otherEnd, msgs); + case RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP: + return ((InternalEList) (InternalEList) getAllocatableGroup()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS: + getContents().clear(); + getContents().addAll((Collection) newValue); + return; + case RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP: + getAllocatableGroup().clear(); + getAllocatableGroup().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Abstract Constraint'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.AbstractConstraintImpl#getExpression Expression}
  • + *
+ * + * @generated + */ +public abstract class AbstractConstraintImpl extends PackagableElementImpl implements AbstractConstraint { + /** + * The cached value of the '{@link #getExpression() Expression}' containment reference. + * + * + * @see #getExpression() + * @generated + * @ordered + */ + protected Expression expression; + + /** + * + * @generated + */ + protected AbstractConstraintImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ABSTRACT_CONSTRAINT; + } + + /** + * + * @generated + */ + public Expression getExpression() { + return expression; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.ABSTRACT_CONSTRAINT__EXPRESSION: + setExpression((Expression) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.ABSTRACT_CONSTRAINT__EXPRESSION: + setExpression((Expression) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Abstract Content'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.AbstractContentImpl#getContentGroup Content Group}
  • + *
  • {@link rba.core.impl.AbstractContentImpl#getAllocatable Allocatable}
  • + *
+ * + * @generated + */ +public abstract class AbstractContentImpl extends RuleObjectImpl implements AbstractContent { + /** + * The cached value of the '{@link #getContentGroup() Content Group}' reference list. + * + * @see #getContentGroup() + * @generated + * @ordered + */ + protected EList contentGroup; + + /** + * The cached value of the '{@link #getAllocatable() Allocatable}' reference list. + * + * @see #getAllocatable() + * @generated + * @ordered + */ + protected EList allocatable; + + /** + * + * @generated + */ + protected AbstractContentImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ABSTRACT_CONTENT; + } + + /** + * + * @generated + */ + public EList getContentGroup() { + if (contentGroup == null) { + contentGroup = new EObjectWithInverseResolvingEList.ManyInverse(ContentSet.class, this, + RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP, RBACorePackage.CONTENT_SET__TARGET); + } + return contentGroup; + } + + /** + * + * @generated + */ + public EList getAllocatable() { + if (allocatable == null) { + allocatable = new EObjectWithInverseResolvingEList.ManyInverse( + AbstractAllocatable.class, this, RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE, + RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS); + } + return allocatable; + } + + /** + * + * @generated + */ + public EList getAllocatableList() { + java.util.Set allocatables = new java.util.LinkedHashSet(); + getAllocatable().forEach(allocatable -> allocatables.addAll(allocatable.collectLeafAllocatable())); + getContentGroup().forEach(contentSet -> allocatables.addAll(contentSet.getAllocatableList())); + return new org.eclipse.emf.common.util.BasicEList(allocatables); + } + + /** + * + * @generated + */ + public EList collectLeafContents() { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP: + return ((InternalEList) (InternalEList) getContentGroup()).basicAdd(otherEnd, msgs); + case RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE: + return ((InternalEList) (InternalEList) getAllocatable()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP: + getContentGroup().clear(); + getContentGroup().addAll((Collection) newValue); + return; + case RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE: + getAllocatable().clear(); + getAllocatable().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Abstract Property'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.AbstractPropertyImpl#getOwner Owner}
  • + *
+ * + * @generated + */ +public abstract class AbstractPropertyImpl extends RuleObjectImpl implements AbstractProperty { + /** + * + * @generated + */ + protected AbstractPropertyImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ABSTRACT_PROPERTY; + } + + /** + * + * @generated + */ + public Scene getOwner() { + if (eContainerFeatureID() != RBACorePackage.ABSTRACT_PROPERTY__OWNER) + return null; + return (Scene) eInternalContainer(); + } + + /** + * + * @generated + */ + public NotificationChain basicSetOwner(Scene newOwner, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject) newOwner, RBACorePackage.ABSTRACT_PROPERTY__OWNER, msgs); + return msgs; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.PROPERTY; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.ABSTRACT_PROPERTY__OWNER: + setOwner((Scene) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.ABSTRACT_PROPERTY__OWNER: + setOwner((Scene) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.ABSTRACT_PROPERTY__OWNER: + return getOwner() != null; + } + return super.eIsSet(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Abstract Scene'. + * + * @generated + */ +public abstract class AbstractSceneImpl extends RuleObjectImpl implements AbstractScene { + /** + * + * @generated + */ + protected AbstractSceneImpl() { + super(); + } + + /** + * + * @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; + +/** + * + * An implementation of the model object 'Active Contents'. + * + * + * @generated + */ +public class ActiveContentsImpl extends AllocatableOperatorImpl implements ActiveContents { + /** + * + * + * @generated + */ + protected ActiveContentsImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ACTIVE_CONTENTS; + } + + /** + * + * + * @generated + */ + public String getSymbol() { + return ".activeContents()"; + } + + /** + * + * + * @generated + */ + public ExpressionType getUnderlyingType() { + EList 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; + } + + /** + * + * + * @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; + +/** + * An implementation of the model object 'Active State'. + * + * @generated + */ +public class ActiveStateImpl extends ContentOperatorImpl implements ActiveState { + /** + * + * @generated + */ + protected ActiveStateImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ACTIVE_STATE; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".activeState()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.CONTENT_STATE; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Allocatable'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.AllocatableImpl#getArbitrationPolicy Arbitration Policy}
  • + *
  • {@link rba.core.impl.AllocatableImpl#getVisibility Visibility}
  • + *
+ * + * @generated + */ +public abstract class AllocatableImpl extends AbstractAllocatableImpl implements Allocatable { + /** + * The default value of the '{@link #getArbitrationPolicy() Arbitration Policy}' attribute. + * + * + * @see #getArbitrationPolicy() + * @generated + * @ordered + */ + protected static final ArbitrationPolicy ARBITRATION_POLICY_EDEFAULT = ArbitrationPolicy.DEFAULT; + + /** + * The cached value of the '{@link #getArbitrationPolicy() Arbitration Policy}' attribute. + * + * + * @see #getArbitrationPolicy() + * @generated + * @ordered + */ + protected ArbitrationPolicy arbitrationPolicy = ARBITRATION_POLICY_EDEFAULT; + + /** + * The cached value of the '{@link #getVisibility() Visibility}' containment reference. + * + * + * @see #getVisibility() + * @generated + * @ordered + */ + protected Expression visibility; + + /** + * + * @generated + */ + protected AllocatableImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ALLOCATABLE; + } + + /** + * + * @generated + */ + public ArbitrationPolicy getArbitrationPolicy() { + return arbitrationPolicy; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public Expression getVisibility() { + return visibility; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public EList collectLeafAllocatable() { + java.util.Set allocatables = new java.util.HashSet(); + allocatables.add(this); + return new org.eclipse.emf.common.util.BasicEList(allocatables); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Allocatable Operator'. + * + * @generated + */ +public abstract class AllocatableOperatorImpl extends OperatorImpl implements AllocatableOperator { + /** + * + * @generated + */ + protected AllocatableOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ALLOCATABLE_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList expressions = getOperand(); + expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]"); + expressionText.append(getSymbol()); + return expressionText.toString(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Allocatable Set'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.AllocatableSetImpl#getTarget Target}
  • + *
+ * + * @generated + */ +public abstract class AllocatableSetImpl extends AbstractAllocatableImpl implements AllocatableSet { + /** + * The cached value of the '{@link #getTarget() Target}' reference list. + * @see #getTarget() + * @generated + * @ordered + */ + protected EList target; + + /** + * + * @generated + */ + protected AllocatableSetImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ALLOCATABLE_SET; + } + + /** + * + * @generated + */ + public EList getTarget() { + if (target == null) { + target = new EObjectWithInverseResolvingEList.ManyInverse(AbstractAllocatable.class, + this, RBACorePackage.ALLOCATABLE_SET__TARGET, + RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP); + } + return target; + } + + /** + * + * @generated + */ + public EList collectLeafAllocatable() { + java.util.Set allocatables = new java.util.LinkedHashSet(); + getTarget().forEach(allocatable -> allocatables.addAll(allocatable.collectLeafAllocatable())); + return new org.eclipse.emf.common.util.BasicEList(allocatables); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case RBACorePackage.ALLOCATABLE_SET__TARGET: + return ((InternalEList) (InternalEList) getTarget()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.ALLOCATABLE_SET__TARGET: + getTarget().clear(); + getTarget().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.ALLOCATABLE_SET__TARGET: + getTarget().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.ALLOCATABLE_SET__TARGET: + return target != null && !target.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Allocated Content'. + * + * @generated + */ +public class AllocatedContentImpl extends AllocatableOperatorImpl implements AllocatedContent { + /** + * + * @generated + */ + protected AllocatedContentImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ALLOCATED_CONTENT; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".allocatedContent()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + EList 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; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'And Operator'. + * + * @generated + */ +public class AndOperatorImpl extends LogicalOperatorImpl implements AndOperator { + /** + * + * @generated + */ + protected AndOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.AND_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "AND"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Arbitration Policy Expression'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.ArbitrationPolicyExpressionImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class ArbitrationPolicyExpressionImpl extends EnumExpressionImpl implements ArbitrationPolicyExpression { + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final ArbitrationPolicy VALUE_EDEFAULT = ArbitrationPolicy.DEFAULT; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * @see #getValue() + * @generated + * @ordered + */ + protected ArbitrationPolicy value = VALUE_EDEFAULT; + + /** + * + * @generated + */ + protected ArbitrationPolicyExpressionImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ARBITRATION_POLICY_EXPRESSION; + } + + /** + * + * @generated + */ + public ArbitrationPolicy getValue() { + return value; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public String getExpressionText() { + if (value instanceof ArbitrationPolicy) { + return value.getName(); + } else { + return "[Invalid_Expression]"; + } + } + + /** + * + * @generated + */ + public Enumerator getExpressionValue() { + return value; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.ARBITRATION_POLICY_EXPRESSION__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.ARBITRATION_POLICY_EXPRESSION__VALUE: + return value != VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Arithmetic Operator'. + * + * @generated + */ +public abstract class ArithmeticOperatorImpl extends OperatorImpl implements ArithmeticOperator { + /** + * + * @generated + */ + protected ArithmeticOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ARITHMETIC_OPERATOR; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.VALUE; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Comparison And'. + * + * @generated + */ +public class ComparisonAndImpl extends ComparisonOperatorImpl implements ComparisonAnd { + /** + * + * @generated + */ + protected ComparisonAndImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.COMPARISON_AND; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "and"; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Comparison Operator'. + * + * @generated + */ +public abstract class ComparisonOperatorImpl extends OperatorImpl implements ComparisonOperator { + /** + * + * @generated + */ + protected ComparisonOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.COMPARISON_OPERATOR; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.VALUE; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList expressions = getOperand(); + expressionText.append(getSymbol()); + expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]"); + return expressionText.toString(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Complex Expression'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.ComplexExpressionImpl#getOtherExpression Other Expression}
  • + *
+ * + * @generated + */ +public class ComplexExpressionImpl extends ExpressionImpl implements ComplexExpression { + /** + * The cached value of the '{@link #getOtherExpression() Other Expression}' containment reference. + * @see #getOtherExpression() + * @generated + * @ordered + */ + protected Expression otherExpression; + + /** + * + * @generated + */ + protected ComplexExpressionImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.COMPLEX_EXPRESSION; + } + + /** + * + * @generated + */ + public Expression getOtherExpression() { + return otherExpression; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public String getExpressionText() { + return otherExpression != null ? otherExpression.getExpressionText() : "[Invalid_Expression]"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + if (otherExpression != null) { + return otherExpression.getType(); + } else { + return ExpressionType.VALUE; + } + } + + /** + * + * @generated + */ + public ExpressionType getType() { + return getUnderlyingType(); + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @generated NOT + */ + public Expression getExpanded() { + otherExpression.getLetStatements().addAll(getLetStatements()); + return otherExpression; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION: + setOtherExpression((Expression) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION: + return otherExpression != null; + } + return super.eIsSet(featureID); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Constraint'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.ConstraintImpl#isRuntime Runtime}
  • + *
+ * + * @generated + */ +public class ConstraintImpl extends AbstractConstraintImpl implements Constraint { + /** + * The default value of the '{@link #isRuntime() Runtime}' attribute. + * + * @see #isRuntime() + * @generated + * @ordered + */ + protected static final boolean RUNTIME_EDEFAULT = true; + + /** + * The cached value of the '{@link #isRuntime() Runtime}' attribute. + * + * @see #isRuntime() + * @generated + * @ordered + */ + protected boolean runtime = RUNTIME_EDEFAULT; + + /** + * This is true if the Runtime attribute has been set. + * + * @generated + * @ordered + */ + protected boolean runtimeESet; + + /** + * + * @generated + */ + protected ConstraintImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.CONSTRAINT; + } + + /** + * + * @generated + */ + public boolean isRuntime() { + return runtime; + } + + /** + * + * @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)); + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public boolean isSetRuntime() { + return runtimeESet; + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.CONSTRAINT__RUNTIME: + setRuntime((Boolean) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.CONSTRAINT__RUNTIME: + unsetRuntime(); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.CONSTRAINT__RUNTIME: + return isSetRuntime(); + } + return super.eIsSet(featureID); + } + + /** + * + * @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(""); + 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; + +/** + * An implementation of the model object 'Content'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.ContentImpl#getLoserType Loser Type}
  • + *
  • {@link rba.core.impl.ContentImpl#getStates States}
  • + *
+ * + * @generated + */ +public abstract class ContentImpl extends AbstractContentImpl implements Content { + /** + * The default value of the '{@link #getLoserType() Loser Type}' attribute. + * + * @see #getLoserType() + * @generated + * @ordered + */ + protected static final LoserType LOSER_TYPE_EDEFAULT = LoserType.NEVER_GIVEUP; + + /** + * The cached value of the '{@link #getLoserType() Loser Type}' attribute. + * + * @see #getLoserType() + * @generated + * @ordered + */ + protected LoserType loserType = LOSER_TYPE_EDEFAULT; + + /** + * The cached value of the '{@link #getStates() States}' containment reference list. + * + * @see #getStates() + * @generated + * @ordered + */ + protected EList states; + + /** + * + * @generated + */ + protected ContentImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.CONTENT; + } + + /** + * + * @generated + */ + public LoserType getLoserType() { + return loserType; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public EList getStates() { + if (states == null) { + states = new EObjectContainmentWithInverseEList(ContentState.class, this, + RBACorePackage.CONTENT__STATES, RBACorePackage.CONTENT_STATE__OWNER); + } + return states; + } + + /** + * + * @generated + */ + public EList collectLeafContents() { + java.util.Set contents = new java.util.HashSet(); + contents.add(this); + return new org.eclipse.emf.common.util.BasicEList(contents); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case RBACorePackage.CONTENT__STATES: + return ((InternalEList) (InternalEList) getStates()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Content Operator'. + * + * @generated + */ +public abstract class ContentOperatorImpl extends OperatorImpl implements ContentOperator { + /** + * + * @generated + */ + protected ContentOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.CONTENT_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList expressions = getOperand(); + expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]"); + expressionText.append(getSymbol()); + return expressionText.toString(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Content Set'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.ContentSetImpl#getTarget Target}
  • + *
+ * + * @generated + */ +public abstract class ContentSetImpl extends AbstractContentImpl implements ContentSet { + /** + * The cached value of the '{@link #getTarget() Target}' reference list. + * @see #getTarget() + * @generated + * @ordered + */ + protected EList target; + + /** + * + * @generated + */ + protected ContentSetImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.CONTENT_SET; + } + + /** + * + * @generated + */ + public EList getTarget() { + if (target == null) { + target = new EObjectWithInverseResolvingEList.ManyInverse(AbstractContent.class, this, + RBACorePackage.CONTENT_SET__TARGET, RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP); + } + return target; + } + + /** + * + * @generated + */ + public EList collectLeafContents() { + java.util.Set contents = new java.util.LinkedHashSet(); + getTarget().forEach(content -> contents.addAll(content.collectLeafContents())); + return new org.eclipse.emf.common.util.BasicEList(contents); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case RBACorePackage.CONTENT_SET__TARGET: + return ((InternalEList) (InternalEList) getTarget()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.CONTENT_SET__TARGET: + getTarget().clear(); + getTarget().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.CONTENT_SET__TARGET: + getTarget().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.CONTENT_SET__TARGET: + return target != null && !target.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Content State'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.ContentStateImpl#getValue Value}
  • + *
  • {@link rba.core.impl.ContentStateImpl#getOwner Owner}
  • + *
+ * + * @generated + */ +public abstract class ContentStateImpl extends RuleObjectImpl implements ContentState { + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * @see #getValue() + * @generated + * @ordered + */ + protected Expression value; + + /** + * + * @generated + */ + protected ContentStateImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.CONTENT_STATE; + } + + /** + * + * @generated + */ + public Expression getValue() { + return value; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public Content getOwner() { + if (eContainerFeatureID() != RBACorePackage.CONTENT_STATE__OWNER) + return null; + return (Content) eInternalContainer(); + } + + /** + * + * @generated + */ + public NotificationChain basicSetOwner(Content newOwner, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject) newOwner, RBACorePackage.CONTENT_STATE__OWNER, msgs); + return msgs; + } + + /** + * + * @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)); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Content State Operator'. + * + * @generated + */ +public abstract class ContentStateOperatorImpl extends OperatorImpl implements ContentStateOperator { + /** + * + * @generated + */ + protected ContentStateOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.CONTENT_STATE_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList expressions = getOperand(); + expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]"); + expressionText.append(getSymbol()); + return expressionText.toString(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Content Value'. + * + * @generated + */ +public class ContentValueImpl extends AllocatableOperatorImpl implements ContentValue { + /** + * + * @generated + */ + protected ContentValueImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.CONTENT_VALUE; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".contentValue()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.VALUE; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Enum Expression'. + * + * @generated + */ +public abstract class EnumExpressionImpl extends ExpressionImpl implements EnumExpression { + /** + * + * @generated + */ + protected EnumExpressionImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.ENUM_EXPRESSION; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.ENUM; + } + + /** + * + * @generated + */ + public Enumerator getExpressionValue() { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * @generated + */ + public ExpressionType getType() { + return getUnderlyingType(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Equal To Operator'. + * + * @generated + */ +public class EqualToOperatorImpl extends ComparisonOperatorImpl implements EqualToOperator { + /** + * + * @generated + */ + protected EqualToOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.EQUAL_TO_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "="; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Exists Operator'. + * + * @generated + */ +public class ExistsOperatorImpl extends LambdaContextImpl implements ExistsOperator { + /** + * + * @generated + */ + protected ExistsOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.EXISTS_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @generated + */ + public String getSymbol() { + return "Exists"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Expression'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.ExpressionImpl#getType Type}
  • + *
  • {@link rba.core.impl.ExpressionImpl#getExpression Expression}
  • + *
  • {@link rba.core.impl.ExpressionImpl#getLetStatements Let Statements}
  • + *
+ * + * @generated + */ +public abstract class ExpressionImpl extends MinimalEObjectImpl.Container implements Expression { + /** + * The default value of the '{@link #getType() Type}' attribute. + * + * @see #getType() + * @generated + * @ordered + */ + protected static final ExpressionType TYPE_EDEFAULT = ExpressionType.VALUE; + + /** + * The default value of the '{@link #getExpression() Expression}' attribute. + * + * @see #getExpression() + * @generated + * @ordered + */ + protected static final String EXPRESSION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getLetStatements() Let Statements}' containment reference list. + * @see #getLetStatements() + * @generated + * @ordered + */ + protected EList letStatements; + + /** + * + * @generated + */ + protected ExpressionImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.EXPRESSION; + } + + /** + * + * @generated NOT + */ + public ExpressionType getType() { + return getUnderlyingType(); + } + + /** + * + * @generated NOT + */ + public boolean isSetType() { + return true; + } + + /** + * + * @generated NOT + */ + public String getExpression() { + return getExpressionText(); + } + + /** + * + * @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(); + } + + /** + * + * @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(); + } + + /** + * + * @generated NOT + */ + public boolean isSetExpression() { + return true; + } + + /** + * + * @generated + */ + public EList getLetStatements() { + if (letStatements == null) { + letStatements = new EObjectContainmentEList(LetStatement.class, this, + RBACorePackage.EXPRESSION__LET_STATEMENTS); + } + return letStatements; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * @generated + */ + public String getExpressionText() { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'For All Operator'. + * + * @generated + */ +public class ForAllOperatorImpl extends LambdaContextImpl implements ForAllOperator { + /** + * + * @generated + */ + protected ForAllOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.FOR_ALL_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @generated + */ + public String getSymbol() { + return "For All"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + rba.core.LambdaExpression lambda = getLambda(); + if (lambda != null && lambda.getBodyText() != null) { + return lambda.getBodyText().getUnderlyingType(); + } + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Get Allocatables'. + * + * @generated + */ +public class GetAllocatablesImpl extends ContentOperatorImpl implements GetAllocatables { + /** + * + * @generated + */ + protected GetAllocatablesImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.GET_ALLOCATABLES; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".allocatables()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + EList 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; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Get Contents List'. + * + * @generated + */ +public class GetContentsListImpl extends AllocatableOperatorImpl implements GetContentsList { + /** + * + * @generated + */ + protected GetContentsListImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.GET_CONTENTS_LIST; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".contentsList()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + EList 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; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Get Property'. + * + * @generated + */ +public class GetPropertyImpl extends PropertyOperatorImpl implements GetProperty { + /** + * + * @generated + */ + protected GetPropertyImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.GET_PROPERTY; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".get()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.VALUE; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Get State'. + * + * @generated + */ +public class GetStateImpl extends MinimalEObjectImpl.Container implements GetState { + /** + * + * @generated + */ + protected GetStateImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.GET_STATE; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".state()"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Greater Than Operator'. + * + * @generated + */ +public class GreaterThanOperatorImpl extends ComparisonOperatorImpl implements GreaterThanOperator { + /** + * + * @generated + */ + protected GreaterThanOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.GREATER_THAN_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ">"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Has Been Displayed'. + * + * @generated + */ +public class HasBeenDisplayedImpl extends ContentOperatorImpl implements HasBeenDisplayed { + /** + * + * @generated + */ + protected HasBeenDisplayedImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.HAS_BEEN_DISPLAYED; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".hasBeenDisplayed()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Has Come Earlier Than'. + * + * @generated + */ +public class HasComeEarlierThanImpl extends ContentOperatorImpl implements HasComeEarlierThan { + /** + * + * @generated + */ + protected HasComeEarlierThanImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.HAS_COME_EARLIER_THAN; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".hasComeEarlierThan"; //$NON-NLS-1$ + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Has Come Later Than'. + * + * @generated + */ +public class HasComeLaterThanImpl extends ContentOperatorImpl implements HasComeLaterThan { + /** + * + * @generated + */ + protected HasComeLaterThanImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.HAS_COME_LATER_THAN; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".hasComeLaterThan"; //$NON-NLS-1$ + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'If Statement'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.IfStatementImpl#getCondition Condition}
  • + *
  • {@link rba.core.impl.IfStatementImpl#getThenExpression Then Expression}
  • + *
  • {@link rba.core.impl.IfStatementImpl#getElseExpression Else Expression}
  • + *
+ * + * @generated + */ +public class IfStatementImpl extends ExpressionImpl implements IfStatement { + /** + * The cached value of the '{@link #getCondition() Condition}' containment reference. + * + * @see #getCondition() + * @generated + * @ordered + */ + protected Expression condition; + + /** + * The cached value of the '{@link #getThenExpression() Then Expression}' containment reference. + * @see #getThenExpression() + * @generated + * @ordered + */ + protected Expression thenExpression; + + /** + * The cached value of the '{@link #getElseExpression() Else Expression}' containment reference. + * @see #getElseExpression() + * @generated + * @ordered + */ + protected Expression elseExpression; + + /** + * + * @generated + */ + protected IfStatementImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IF_STATEMENT; + } + + /** + * + * @generated + */ + public Expression getCondition() { + return condition; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public Expression getThenExpression() { + return thenExpression; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public Expression getElseExpression() { + return elseExpression; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + if (thenExpression != null) { + return thenExpression.getUnderlyingType(); + } + return ExpressionType.VALUE; + } + + /** + * + * @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(); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Implies Operator'. + * + * @generated + */ +public class ImpliesOperatorImpl extends LogicalOperatorImpl implements ImpliesOperator { + /** + * + * @generated + */ + protected ImpliesOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IMPLIES_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "->"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Integer Property'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.IntegerPropertyImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class IntegerPropertyImpl extends AbstractPropertyImpl implements IntegerProperty { + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * @see #getValue() + * @generated + * @ordered + */ + protected Expression value; + + /** + * + * @generated + */ + protected IntegerPropertyImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.INTEGER_PROPERTY; + } + + /** + * + * @generated + */ + public Expression getValue() { + return value; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.INTEGER_PROPERTY__VALUE: + setValue((Expression) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.INTEGER_PROPERTY__VALUE: + setValue((Expression) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Integer Value'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.IntegerValueImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class IntegerValueImpl extends ValueExpressionImpl implements IntegerValue { + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final int VALUE_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * @see #getValue() + * @generated + * @ordered + */ + protected int value = VALUE_EDEFAULT; + + /** + * + * @generated + */ + protected IntegerValueImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.INTEGER_VALUE; + } + + /** + * + * @generated + */ + public int getValue() { + return value; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public String getExpressionText() { + return String.valueOf(value); + } + + /** + * + * @generated + */ + public int getExpressionValue() { + return value; + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.INTEGER_VALUE__VALUE: + setValue((Integer) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.INTEGER_VALUE__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.INTEGER_VALUE__VALUE: + return value != VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Active'. + * + * @generated + */ +public class IsActiveImpl extends ContentOperatorImpl implements IsActive { + /** + * + * @generated + */ + protected IsActiveImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IS_ACTIVE; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isActive()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Allocated To'. + * + * @generated + */ +public class IsAllocatedToImpl extends ContentOperatorImpl implements IsAllocatedTo { + /** + * + * @generated + */ + protected IsAllocatedToImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IS_ALLOCATED_TO; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isAllocatedTo"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuilder expressionText = new StringBuilder(); + EList 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(); + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Changed'. + * + * @generated + */ +public class IsChangedImpl extends AllocatableOperatorImpl implements IsChanged { + /** + * + * @generated + */ + protected IsChangedImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IS_CHANGED; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isChanged()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Equal To Operator'. + * + * @generated + */ +public class IsEqualToOperatorImpl extends LogicalOperatorImpl implements IsEqualToOperator { + /** + * + * @generated + */ + protected IsEqualToOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IS_EQUAL_TO_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "="; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Greater Than Equal Operator'. + * + * @generated + */ +public class IsGreaterThanEqualOperatorImpl extends LogicalOperatorImpl implements IsGreaterThanEqualOperator { + /** + * + * @generated + */ + protected IsGreaterThanEqualOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IS_GREATER_THAN_EQUAL_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ">="; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Greater Than Operator'. + * @generated + */ +public class IsGreaterThanOperatorImpl extends LogicalOperatorImpl implements IsGreaterThanOperator { + /** + * + * @generated + */ + protected IsGreaterThanOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IS_GREATER_THAN_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ">"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Lower Than Equal Operator'. + * + * @generated + */ +public class IsLowerThanEqualOperatorImpl extends LogicalOperatorImpl implements IsLowerThanEqualOperator { + /** + * + * @generated + */ + protected IsLowerThanEqualOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IS_LOWER_THAN_EQUAL_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "<="; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Lower Than Operator'. + * + * @generated + */ +public class IsLowerThanOperatorImpl extends LogicalOperatorImpl implements IsLowerThanOperator { + /** + * + * @generated + */ + protected IsLowerThanOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IS_LOWER_THAN_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "<"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is On'. + * + * @generated + */ +public class IsOnImpl extends SceneOperatorImpl implements IsOn { + /** + * + * @generated + */ + protected IsOnImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IS_ON; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isOn()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Translated To'. + * + * @generated + */ +public class IsTranslatedToImpl extends AllocatableOperatorImpl implements IsTranslatedTo { + /** + * + * @generated + */ + protected IsTranslatedToImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IS_TRANSLATED_TO; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isTranslatedTo"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuilder expressionText = new StringBuilder(); + EList 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(); + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Type Of'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.IsTypeOfImpl#getTagName Tag Name}
  • + *
+ * + * @generated + */ +public class IsTypeOfImpl extends OperatorImpl implements IsTypeOf { + /** + * The default value of the '{@link #getTagName() Tag Name}' attribute. + * @see #getTagName() + * @generated + * @ordered + */ + protected static final String TAG_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTagName() Tag Name}' attribute. + * @see #getTagName() + * @generated + * @ordered + */ + protected String tagName = TAG_NAME_EDEFAULT; + + /** + * + * @generated + */ + protected IsTypeOfImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.IS_TYPE_OF; + } + + /** + * + * @generated + */ + public String getTagName() { + return tagName; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isTypeOf"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.IS_TYPE_OF__TAG_NAME: + setTagName(TAG_NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Lambda Context'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.LambdaContextImpl#getLambda Lambda}
  • + *
+ * + * @generated + */ +public abstract class LambdaContextImpl extends SetOperatorImpl implements LambdaContext { + /** + * The cached value of the '{@link #getLambda() Lambda}' containment reference. + * + * @see #getLambda() + * @generated + * @ordered + */ + protected LambdaExpression lambda; + + /** + * + * @generated + */ + protected LambdaContextImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.LAMBDA_CONTEXT; + } + + /** + * + * @generated + */ + public LambdaExpression getLambda() { + return lambda; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.LAMBDA_CONTEXT__LAMBDA: + setLambda((LambdaExpression) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.LAMBDA_CONTEXT__LAMBDA: + setLambda((LambdaExpression) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.LAMBDA_CONTEXT__LAMBDA: + return lambda != null; + } + return super.eIsSet(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Lambda Expression'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.LambdaExpressionImpl#getContext Context}
  • + *
  • {@link rba.core.impl.LambdaExpressionImpl#getX X}
  • + *
  • {@link rba.core.impl.LambdaExpressionImpl#getBodyText Body Text}
  • + *
+ * + * @generated + */ +public class LambdaExpressionImpl extends ExpressionImpl implements LambdaExpression { + /** + * The cached value of the '{@link #getX() X}' containment reference. + * + * @see #getX() + * @generated + * @ordered + */ + protected Variable x; + + /** + * The cached value of the '{@link #getBodyText() Body Text}' containment reference. + * + * @see #getBodyText() + * @generated + * @ordered + */ + protected Expression bodyText; + + /** + * + * @generated + */ + protected LambdaExpressionImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.LAMBDA_EXPRESSION; + } + + /** + * + * @generated + */ + public LambdaContext getContext() { + if (eContainerFeatureID() != RBACorePackage.LAMBDA_EXPRESSION__CONTEXT) + return null; + return (LambdaContext) eInternalContainer(); + } + + /** + * + * @generated + */ + public NotificationChain basicSetContext(LambdaContext newContext, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject) newContext, RBACorePackage.LAMBDA_EXPRESSION__CONTEXT, msgs); + return msgs; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public Variable getX() { + return x; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated NOT + */ + public Expression getBodyText() { + if (bodyText != null) + bodyText.getLetStatements().addAll(getLetStatements()); + return bodyText; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @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(); + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.LAMBDA; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Let Statement'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.LetStatementImpl#getVariable Variable}
  • + *
  • {@link rba.core.impl.LetStatementImpl#getBody Body}
  • + *
+ * + * @generated + */ +public class LetStatementImpl extends ModelElementImpl implements LetStatement { + /** + * The cached value of the '{@link #getVariable() Variable}' containment reference. + * + * @see #getVariable() + * @generated + * @ordered + */ + protected Variable variable; + + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * @see #getBody() + * @generated + * @ordered + */ + protected Expression body; + + /** + * + * @generated + */ + protected LetStatementImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.LET_STATEMENT; + } + + /** + * + * @generated + */ + public Variable getVariable() { + return variable; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public Expression getBody() { + return body; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @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(); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Logical Operator'. + * + * @generated + */ +public abstract class LogicalOperatorImpl extends OperatorImpl implements LogicalOperator { + /** + * + * @generated + */ + protected LogicalOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.LOGICAL_OPERATOR; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Loser Type Expression'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.LoserTypeExpressionImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class LoserTypeExpressionImpl extends EnumExpressionImpl implements LoserTypeExpression { + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final LoserType VALUE_EDEFAULT = LoserType.NEVER_GIVEUP; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * @see #getValue() + * @generated + * @ordered + */ + protected LoserType value = VALUE_EDEFAULT; + + /** + * + * @generated + */ + protected LoserTypeExpressionImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.LOSER_TYPE_EXPRESSION; + } + + /** + * + * @generated + */ + public LoserType getValue() { + return value; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public String getExpressionText() { + if (value instanceof LoserType) { + return value.getName(); + } else { + return "[Invalid_Expression]"; + } + } + + /** + * + * @generated + */ + public Enumerator getExpressionValue() { + return value; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.LOSER_TYPE_EXPRESSION__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.LOSER_TYPE_EXPRESSION__VALUE: + return value != VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Lower Than Operator'. + * + * @generated + */ +public class LowerThanOperatorImpl extends ComparisonOperatorImpl implements LowerThanOperator { + /** + * + * @generated + */ + protected LowerThanOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.LOWER_THAN_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "<"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Max Operator'. + * + * @generated + */ +public class MaxOperatorImpl extends LambdaContextImpl implements MaxOperator { + /** + * + * @generated + */ + protected MaxOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.MAX_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".max"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return getContextType(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Max Value'. + * + * @generated + */ +public class MaxValueImpl extends ValueExpressionImpl implements MaxValue { + /** + * + * @generated + */ + protected MaxValueImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.MAX_VALUE; + } + + /** + * + * @generated + */ + public String getExpressionText() { + return "MAX"; + } + + /** + * + * @generated + */ + public int getExpressionValue() { + return 9999; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Min Operator'. + * + * @generated + */ +public class MinOperatorImpl extends LambdaContextImpl implements MinOperator { + /** + * + * @generated + */ + protected MinOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.MIN_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".min"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return getContextType(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Min Value'. + * + * @generated + */ +public class MinValueImpl extends ValueExpressionImpl implements MinValue { + /** + * + * @generated + */ + protected MinValueImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.MIN_VALUE; + } + + /** + * + * @generated + */ + public String getExpressionText() { + return "MIN"; + } + + /** + * + * @generated + */ + public int getExpressionValue() { + return 0; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Model Element'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.ModelElementImpl#getDescription Description}
  • + *
+ * + * @generated + */ +public abstract class ModelElementImpl extends MinimalEObjectImpl.Container implements ModelElement { + /** + * The default value of the '{@link #getDescription() Description}' attribute. + * + * @see #getDescription() + * @generated + * @ordered + */ + protected static final String DESCRIPTION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getDescription() Description}' attribute. + * + * @see #getDescription() + * @generated + * @ordered + */ + protected String description = DESCRIPTION_EDEFAULT; + + /** + * + * @generated + */ + protected ModelElementImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.MODEL_ELEMENT; + } + + /** + * + * @generated + */ + public String getDescription() { + return description; + } + + /** + * + * @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)); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.MODEL_ELEMENT__DESCRIPTION: + setDescription((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.MODEL_ELEMENT__DESCRIPTION: + setDescription(DESCRIPTION_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Much Greater Than Operator'. + * @generated + */ +public class MuchGreaterThanOperatorImpl extends ComparisonOperatorImpl implements MuchGreaterThanOperator { + /** + * + * @generated + */ + protected MuchGreaterThanOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.MUCH_GREATER_THAN_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ">>"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Named Element'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.NamedElementImpl#getName Name}
  • + *
+ * + * @generated + */ +public abstract class NamedElementImpl extends ModelElementImpl implements NamedElement { + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * + * @generated + */ + protected NamedElementImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.NAMED_ELEMENT; + } + + /** + * + * @generated + */ + public String getName() { + return name; + } + + /** + * + * @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)); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.NAMED_ELEMENT__NAME: + setName((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.NAMED_ELEMENT__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'None Value'. + * + * @generated + */ +public class NoneValueImpl extends ValueExpressionImpl implements NoneValue { + /** + * + * @generated + */ + protected NoneValueImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.NONE_VALUE; + } + + /** + * + * @generated + */ + public String getExpressionText() { + return "NONE"; + } + + /** + * + * @generated + */ + public int getExpressionValue() { + return -1; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Not Operator'. + * + * @generated + */ +public class NotOperatorImpl extends LogicalOperatorImpl implements NotOperator { + /** + * + * @generated + */ + protected NotOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.NOT_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "!"; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuilder expressionText = new StringBuilder(); + EList expressions = getOperand(); + expressionText.append(getSymbol()); + expressionText.append("("); + expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]"); + expressionText.append(")"); + return expressionText.toString(); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * + * An implementation of the model object 'Null Expression'. + * + * + * @generated + */ +public class NullExpressionImpl extends ExpressionImpl implements NullExpression { + /** + * + * + * @generated + */ + protected NullExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.NULL_EXPRESSION; + } + + /** + * + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.NULL; + } + + /** + * + * + * @generated + */ + public String getExpressionText() { + return "NULL"; + } + + /** + * + * + * @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; + +/** + * An implementation of the model object 'Object Compare'. + * + * @generated + */ +public class ObjectCompareImpl extends OperatorImpl implements ObjectCompare { + /** + * + * @generated + */ + protected ObjectCompareImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.OBJECT_COMPARE; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "=="; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuilder expressionText = new StringBuilder(); + EList 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(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Object Compare Not'. + * + * @generated + */ +public class ObjectCompareNotImpl extends OperatorImpl implements ObjectCompareNot { + /** + * + * @generated + */ + protected ObjectCompareNotImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.OBJECT_COMPARE_NOT; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "!="; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuilder expressionText = new StringBuilder(); + EList 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(); + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Object Reference'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.ObjectReferenceImpl#getRefObject Ref Object}
  • + *
+ * + * @generated + */ +public class ObjectReferenceImpl extends ExpressionImpl implements ObjectReference { + /** + * The cached value of the '{@link #getRefObject() Ref Object}' reference. + * + * @see #getRefObject() + * @generated + * @ordered + */ + protected RuleObject refObject; + + /** + * + * @generated + */ + protected ObjectReferenceImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.OBJECT_REFERENCE; + } + + /** + * + * @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; + } + + /** + * + * @generated + */ + public RuleObject basicGetRefObject() { + return refObject; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + RuleObject obj = getRefObject(); + if (obj != null) { + return obj.getExpressionType(); + } else { + return ExpressionType.VALUE; + } + } + + /** + * + * @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(); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.OBJECT_REFERENCE__REF_OBJECT: + setRefObject((RuleObject) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.OBJECT_REFERENCE__REF_OBJECT: + return refObject != null; + } + return super.eIsSet(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Operator'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.OperatorImpl#getOperand Operand}
  • + *
+ * + * @generated + */ +public abstract class OperatorImpl extends ExpressionImpl implements Operator { + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference list. + * + * @see #getOperand() + * @generated + * @ordered + */ + protected EList operand; + + /** + * + * @generated + */ + protected OperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.OPERATOR; + } + + /** + * + * @generated + */ + public EList getOperand() { + if (operand == null) { + operand = new EObjectContainmentEList(Expression.class, this, RBACorePackage.OPERATOR__OPERAND); + } + return operand; + } + + /** + * + * @generated + */ + public String getSymbol() { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.OPERATOR__OPERAND: + getOperand().clear(); + getOperand().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.OPERATOR__OPERAND: + getOperand().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.OPERATOR__OPERAND: + return operand != null && !operand.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Or Operator'. + * + * @generated + */ +public class OrOperatorImpl extends LogicalOperatorImpl implements OrOperator { + /** + * + * @generated + */ + protected OrOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.OR_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "OR"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Packagable Element'. + * + * @generated + */ +public abstract class PackagableElementImpl extends NamedElementImpl implements PackagableElement { + /** + * + * @generated + */ + protected PackagableElementImpl() { + super(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Package'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.PackageImpl#getPackagableelement Packagableelement}
  • + *
+ * + * @generated + */ +public class PackageImpl extends PackagableElementImpl implements rba.core.Package { + /** + * The cached value of the '{@link #getPackagableelement() Packagableelement}' containment reference list. + * @see #getPackagableelement() + * @generated + * @ordered + */ + protected EList packagableelement; + + /** + * + * @generated + */ + protected PackageImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.PACKAGE; + } + + /** + * + * @generated + */ + public EList getPackagableelement() { + if (packagableelement == null) { + packagableelement = new EObjectContainmentEList(PackagableElement.class, this, + RBACorePackage.PACKAGE__PACKAGABLEELEMENT); + } + return packagableelement; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.PACKAGE__PACKAGABLEELEMENT: + getPackagableelement().clear(); + getPackagableelement().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.PACKAGE__PACKAGABLEELEMENT: + getPackagableelement().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Plus Operator'. + * + * @generated + */ +public class PlusOperatorImpl extends ArithmeticOperatorImpl implements PlusOperator { + /** + * + * @generated + */ + protected PlusOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.PLUS_OPERATOR; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "+"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Previous Modifier'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.PreviousModifierImpl#getObjReference Obj Reference}
  • + *
+ * + * @generated + */ +public class PreviousModifierImpl extends ExpressionImpl implements PreviousModifier { + /** + * The cached value of the '{@link #getObjReference() Obj Reference}' containment reference. + * + * @see #getObjReference() + * @generated + * @ordered + */ + protected ObjectReference objReference; + + /** + * + * @generated + */ + protected PreviousModifierImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.PREVIOUS_MODIFIER; + } + + /** + * + * @generated + */ + public ObjectReference getObjReference() { + return objReference; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public String getSymbol() { + return "(pre)"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + ObjectReference objReference = getObjReference(); + if (objReference != null) { + return objReference.getUnderlyingType(); + } else { + return ExpressionType.VALUE; + } + } + + /** + * + * @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(); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE: + setObjReference((ObjectReference) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE: + return objReference != null; + } + return super.eIsSet(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Project'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.ProjectImpl#getVersion Version}
  • + *
  • {@link rba.core.impl.ProjectImpl#getDummyName Dummy Name}
  • + *
+ * + * @generated + */ +public class ProjectImpl extends PackageImpl implements Project { + /** + * The default value of the '{@link #getVersion() Version}' attribute. + * @see #getVersion() + * @generated + * @ordered + */ + protected static final String VERSION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getVersion() Version}' attribute. + * + * @see #getVersion() + * @generated + * @ordered + */ + protected String version = VERSION_EDEFAULT; + + /** + * The default value of the '{@link #getDummyName() Dummy Name}' attribute. + * + * + * @see #getDummyName() + * @generated + * @ordered + */ + protected static final String DUMMY_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getDummyName() Dummy Name}' attribute. + * + * + * @see #getDummyName() + * @generated + * @ordered + */ + protected String dummyName = DUMMY_NAME_EDEFAULT; + + /** + * + * @generated + */ + protected ProjectImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.PROJECT; + } + + /** + * + * @generated + */ + public String getVersion() { + return version; + } + + /** + * + * @generated + */ + public void setVersion(String newVersion) { + String oldVersion = version; + version = newVersion; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.PROJECT__VERSION, oldVersion, + version)); + } + + /** + * + * + * @generated + */ + public String getDummyName() { + return dummyName; + } + + /** + * + * + * @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)); + } + + /** + * + * @generated + */ + public String getName() { + if (this.eResource() != null) { + String segments[] = this.eResource().getURI().toString().split("/"); + return segments[2]; + } else { + return this.name; + } + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Property Operator'. + * + * @generated + */ +public abstract class PropertyOperatorImpl extends OperatorImpl implements PropertyOperator { + /** + * + * @generated + */ + protected PropertyOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.PROPERTY_OPERATOR; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.PROPERTY; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList expressions = getOperand(); + expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]"); + expressionText.append(getSymbol()); + return expressionText.toString(); + } + + /** + * + * @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; + +/** + * An implementation of the model Factory. + * @generated + */ +public class RBACoreFactoryImpl extends EFactoryImpl implements RBACoreFactory { + /** + * Creates the default factory implementation. + * + * @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. + * + * @generated + */ + public RBACoreFactoryImpl() { + super(); + } + + /** + * + * @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"); + } + } + + /** + * + * @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"); + } + } + + /** + * + * @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"); + } + } + + /** + * + * @generated + */ + public Project createProject() { + ProjectImpl project = new ProjectImpl(); + return project; + } + + /** + * + * @generated + */ + public rba.core.Package createPackage() { + PackageImpl package_ = new PackageImpl(); + return package_; + } + + /** + * + * @generated + */ + public Stereotype createStereotype() { + StereotypeImpl stereotype = new StereotypeImpl(); + return stereotype; + } + + /** + * + * + * @generated + */ + public Tag createTag() { + TagImpl tag = new TagImpl(); + return tag; + } + + /** + * + * @generated + */ + public Scene createScene() { + SceneImpl scene = new SceneImpl(); + return scene; + } + + /** + * + * @generated + */ + public IntegerProperty createIntegerProperty() { + IntegerPropertyImpl integerProperty = new IntegerPropertyImpl(); + return integerProperty; + } + + /** + * + * @generated + */ + public Constraint createConstraint() { + ConstraintImpl constraint = new ConstraintImpl(); + return constraint; + } + + /** + * + * @generated + */ + public LetStatement createLetStatement() { + LetStatementImpl letStatement = new LetStatementImpl(); + return letStatement; + } + + /** + * + * @generated + */ + public ComplexExpression createComplexExpression() { + ComplexExpressionImpl complexExpression = new ComplexExpressionImpl(); + return complexExpression; + } + + /** + * + * @generated + */ + public IsTypeOf createIsTypeOf() { + IsTypeOfImpl isTypeOf = new IsTypeOfImpl(); + return isTypeOf; + } + + /** + * + * @generated + */ + public ObjectReference createObjectReference() { + ObjectReferenceImpl objectReference = new ObjectReferenceImpl(); + return objectReference; + } + + /** + * + * @generated + */ + public PreviousModifier createPreviousModifier() { + PreviousModifierImpl previousModifier = new PreviousModifierImpl(); + return previousModifier; + } + + /** + * + * @generated + */ + public GreaterThanOperator createGreaterThanOperator() { + GreaterThanOperatorImpl greaterThanOperator = new GreaterThanOperatorImpl(); + return greaterThanOperator; + } + + /** + * + * @generated + */ + public MuchGreaterThanOperator createMuchGreaterThanOperator() { + MuchGreaterThanOperatorImpl muchGreaterThanOperator = new MuchGreaterThanOperatorImpl(); + return muchGreaterThanOperator; + } + + /** + * + * @generated + */ + public LowerThanOperator createLowerThanOperator() { + LowerThanOperatorImpl lowerThanOperator = new LowerThanOperatorImpl(); + return lowerThanOperator; + } + + /** + * + * @generated + */ + public EqualToOperator createEqualToOperator() { + EqualToOperatorImpl equalToOperator = new EqualToOperatorImpl(); + return equalToOperator; + } + + /** + * + * @generated + */ + public ComparisonAnd createComparisonAnd() { + ComparisonAndImpl comparisonAnd = new ComparisonAndImpl(); + return comparisonAnd; + } + + /** + * + * @generated + */ + public AndOperator createAndOperator() { + AndOperatorImpl andOperator = new AndOperatorImpl(); + return andOperator; + } + + /** + * + * @generated + */ + public OrOperator createOrOperator() { + OrOperatorImpl orOperator = new OrOperatorImpl(); + return orOperator; + } + + /** + * + * @generated + */ + public NotOperator createNotOperator() { + NotOperatorImpl notOperator = new NotOperatorImpl(); + return notOperator; + } + + /** + * + * @generated + */ + public IsEqualToOperator createIsEqualToOperator() { + IsEqualToOperatorImpl isEqualToOperator = new IsEqualToOperatorImpl(); + return isEqualToOperator; + } + + /** + * + * @generated + */ + public IsGreaterThanOperator createIsGreaterThanOperator() { + IsGreaterThanOperatorImpl isGreaterThanOperator = new IsGreaterThanOperatorImpl(); + return isGreaterThanOperator; + } + + /** + * + * @generated + */ + public IsLowerThanOperator createIsLowerThanOperator() { + IsLowerThanOperatorImpl isLowerThanOperator = new IsLowerThanOperatorImpl(); + return isLowerThanOperator; + } + + /** + * + * @generated + */ + public IsGreaterThanEqualOperator createIsGreaterThanEqualOperator() { + IsGreaterThanEqualOperatorImpl isGreaterThanEqualOperator = new IsGreaterThanEqualOperatorImpl(); + return isGreaterThanEqualOperator; + } + + /** + * + * @generated + */ + public IsLowerThanEqualOperator createIsLowerThanEqualOperator() { + IsLowerThanEqualOperatorImpl isLowerThanEqualOperator = new IsLowerThanEqualOperatorImpl(); + return isLowerThanEqualOperator; + } + + /** + * + * @generated + */ + public PlusOperator createPlusOperator() { + PlusOperatorImpl plusOperator = new PlusOperatorImpl(); + return plusOperator; + } + + /** + * + * @generated + */ + public ImpliesOperator createImpliesOperator() { + ImpliesOperatorImpl impliesOperator = new ImpliesOperatorImpl(); + return impliesOperator; + } + + /** + * + * @generated + */ + public IsActive createIsActive() { + IsActiveImpl isActive = new IsActiveImpl(); + return isActive; + } + + /** + * + * @generated + */ + public GetAllocatables createGetAllocatables() { + GetAllocatablesImpl getAllocatables = new GetAllocatablesImpl(); + return getAllocatables; + } + + /** + * + * @generated + */ + public HasBeenDisplayed createHasBeenDisplayed() { + HasBeenDisplayedImpl hasBeenDisplayed = new HasBeenDisplayedImpl(); + return hasBeenDisplayed; + } + + /** + * + * @generated + */ + public ActiveState createActiveState() { + ActiveStateImpl activeState = new ActiveStateImpl(); + return activeState; + } + + /** + * + * @generated + */ + public ObjectCompare createObjectCompare() { + ObjectCompareImpl objectCompare = new ObjectCompareImpl(); + return objectCompare; + } + + /** + * + * @generated + */ + public ThatOfOperator createThatOfOperator() { + ThatOfOperatorImpl thatOfOperator = new ThatOfOperatorImpl(); + return thatOfOperator; + } + + /** + * + * @generated + */ + public MaxValue createMaxValue() { + MaxValueImpl maxValue = new MaxValueImpl(); + return maxValue; + } + + /** + * + * @generated + */ + public MinValue createMinValue() { + MinValueImpl minValue = new MinValueImpl(); + return minValue; + } + + /** + * + * @generated + */ + public NoneValue createNoneValue() { + NoneValueImpl noneValue = new NoneValueImpl(); + return noneValue; + } + + /** + * + * @generated + */ + public StandardValue createStandardValue() { + StandardValueImpl standardValue = new StandardValueImpl(); + return standardValue; + } + + /** + * + * @generated + */ + public IntegerValue createIntegerValue() { + IntegerValueImpl integerValue = new IntegerValueImpl(); + return integerValue; + } + + /** + * + * @generated + */ + public LoserTypeExpression createLoserTypeExpression() { + LoserTypeExpressionImpl loserTypeExpression = new LoserTypeExpressionImpl(); + return loserTypeExpression; + } + + /** + * + * @generated + */ + public ArbitrationPolicyExpression createArbitrationPolicyExpression() { + ArbitrationPolicyExpressionImpl arbitrationPolicyExpression = new ArbitrationPolicyExpressionImpl(); + return arbitrationPolicyExpression; + } + + /** + * + * @generated + */ + public SizeOperator createSizeOperator() { + SizeOperatorImpl sizeOperator = new SizeOperatorImpl(); + return sizeOperator; + } + + /** + * + * @generated + */ + public ExistsOperator createExistsOperator() { + ExistsOperatorImpl existsOperator = new ExistsOperatorImpl(); + return existsOperator; + } + + /** + * + * @generated + */ + public ForAllOperator createForAllOperator() { + ForAllOperatorImpl forAllOperator = new ForAllOperatorImpl(); + return forAllOperator; + } + + /** + * + * @generated + */ + public MaxOperator createMaxOperator() { + MaxOperatorImpl maxOperator = new MaxOperatorImpl(); + return maxOperator; + } + + /** + * + * @generated + */ + public MinOperator createMinOperator() { + MinOperatorImpl minOperator = new MinOperatorImpl(); + return minOperator; + } + + /** + * + * @generated + */ + public SelectOperator createSelectOperator() { + SelectOperatorImpl selectOperator = new SelectOperatorImpl(); + return selectOperator; + } + + /** + * + * @generated + */ + public SetOfOperator createSetOfOperator() { + SetOfOperatorImpl setOfOperator = new SetOfOperatorImpl(); + return setOfOperator; + } + + /** + * + * @generated + */ + public LambdaExpression createLambdaExpression() { + LambdaExpressionImpl lambdaExpression = new LambdaExpressionImpl(); + return lambdaExpression; + } + + /** + * + * @generated + */ + public Variable createVariable() { + VariableImpl variable = new VariableImpl(); + return variable; + } + + /** + * + * @generated + */ + public IfStatement createIfStatement() { + IfStatementImpl ifStatement = new IfStatementImpl(); + return ifStatement; + } + + /** + * + * @generated + */ + public IsOn createIsOn() { + IsOnImpl isOn = new IsOnImpl(); + return isOn; + } + + /** + * + * @generated + */ + public AllocatedContent createAllocatedContent() { + AllocatedContentImpl allocatedContent = new AllocatedContentImpl(); + return allocatedContent; + } + + /** + * + * @generated + */ + public ContentValue createContentValue() { + ContentValueImpl contentValue = new ContentValueImpl(); + return contentValue; + } + + /** + * + * @generated + */ + public GetContentsList createGetContentsList() { + GetContentsListImpl getContentsList = new GetContentsListImpl(); + return getContentsList; + } + + /** + * + * @generated + */ + public ActiveContents createActiveContents() { + ActiveContentsImpl activeContents = new ActiveContentsImpl(); + return activeContents; + } + + /** + * + * @generated + */ + public GetProperty createGetProperty() { + GetPropertyImpl getProperty = new GetPropertyImpl(); + return getProperty; + } + + /** + * + * @generated + */ + public StateValue createStateValue() { + StateValueImpl stateValue = new StateValueImpl(); + return stateValue; + } + + /** + * + * @generated + */ + public HasComeLaterThan createHasComeLaterThan() { + HasComeLaterThanImpl hasComeLaterThan = new HasComeLaterThanImpl(); + return hasComeLaterThan; + } + + /** + * + * @generated + */ + public HasComeEarlierThan createHasComeEarlierThan() { + HasComeEarlierThanImpl hasComeEarlierThan = new HasComeEarlierThanImpl(); + return hasComeEarlierThan; + } + + /** + * + * @generated + */ + public ObjectCompareNot createObjectCompareNot() { + ObjectCompareNotImpl objectCompareNot = new ObjectCompareNotImpl(); + return objectCompareNot; + } + + /** + * + * @generated + */ + public IsAllocatedTo createIsAllocatedTo() { + IsAllocatedToImpl isAllocatedTo = new IsAllocatedToImpl(); + return isAllocatedTo; + } + + /** + * + * @generated + */ + public IsChanged createIsChanged() { + IsChangedImpl isChanged = new IsChangedImpl(); + return isChanged; + } + + /** + * + * @generated + */ + public IsTranslatedTo createIsTranslatedTo() { + IsTranslatedToImpl isTranslatedTo = new IsTranslatedToImpl(); + return isTranslatedTo; + } + + /** + * + * @generated + */ + public GetState createGetState() { + GetStateImpl getState = new GetStateImpl(); + return getState; + } + + /** + * + * + * @generated + */ + public NullExpression createNullExpression() { + NullExpressionImpl nullExpression = new NullExpressionImpl(); + return nullExpression; + } + + /** + * + * @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; + } + + /** + * + * @generated + */ + public String convertArbitrationPolicyToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * @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; + } + + /** + * + * @generated + */ + public String convertExpressionTypeToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * @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; + } + + /** + * + * @generated + */ + public String convertLoserTypeToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * @generated + */ + public RBACorePackage getRBACorePackage() { + return (RBACorePackage) getEPackage(); + } + + /** + * + * @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.*; + +/** + * An implementation of the model Package. + * @generated + */ +public class RBACorePackageImpl extends EPackageImpl implements RBACorePackage { + /** + * + * @generated + */ + private EClass modelElementEClass = null; + + /** + * + * @generated + */ + private EClass namedElementEClass = null; + + /** + * + * @generated + */ + private EClass abstractAllocatableEClass = null; + + /** + * + * @generated + */ + private EClass allocatableEClass = null; + + /** + * + * @generated + */ + private EClass allocatableSetEClass = null; + + /** + * + * @generated + */ + private EClass projectEClass = null; + + /** + * + * @generated + */ + private EClass packagableElementEClass = null; + + /** + * + * @generated + */ + private EClass packageEClass = null; + + /** + * + * @generated + */ + private EClass stereotypeEClass = null; + + /** + * + * + * @generated + */ + private EClass tagEClass = null; + + /** + * + * @generated + */ + private EClass ruleObjectEClass = null; + + /** + * + * @generated + */ + private EClass abstractContentEClass = null; + + /** + * + * @generated + */ + private EClass abstractSceneEClass = null; + + /** + * + * @generated + */ + private EClass sceneEClass = null; + + /** + * + * @generated + */ + private EClass contentEClass = null; + + /** + * + * @generated + */ + private EClass contentSetEClass = null; + + /** + * + * @generated + */ + private EClass contentStateEClass = null; + + /** + * + * @generated + */ + private EClass abstractPropertyEClass = null; + + /** + * + * @generated + */ + private EClass integerPropertyEClass = null; + + /** + * + * @generated + */ + private EClass abstractConstraintEClass = null; + + /** + * + * @generated + */ + private EClass constraintEClass = null; + + /** + * + * @generated + */ + private EClass expressionEClass = null; + + /** + * + * @generated + */ + private EClass letStatementEClass = null; + + /** + * + * @generated + */ + private EClass complexExpressionEClass = null; + + /** + * + * @generated + */ + private EClass operatorEClass = null; + + /** + * + * @generated + */ + private EClass isTypeOfEClass = null; + + /** + * + * @generated + */ + private EClass objectReferenceEClass = null; + + /** + * + * @generated + */ + private EClass previousModifierEClass = null; + + /** + * + * @generated + */ + private EClass greaterThanOperatorEClass = null; + + /** + * + * @generated + */ + private EClass muchGreaterThanOperatorEClass = null; + + /** + * + * @generated + */ + private EClass lowerThanOperatorEClass = null; + + /** + * + * @generated + */ + private EClass comparisonOperatorEClass = null; + + /** + * + * @generated + */ + private EClass equalToOperatorEClass = null; + + /** + * + * @generated + */ + private EClass comparisonAndEClass = null; + + /** + * + * @generated + */ + private EClass logicalOperatorEClass = null; + + /** + * + * @generated + */ + private EClass andOperatorEClass = null; + + /** + * + * @generated + */ + private EClass orOperatorEClass = null; + + /** + * + * @generated + */ + private EClass notOperatorEClass = null; + + /** + * + * @generated + */ + private EClass isEqualToOperatorEClass = null; + + /** + * + * @generated + */ + private EClass isGreaterThanOperatorEClass = null; + + /** + * + * @generated + */ + private EClass isLowerThanOperatorEClass = null; + + /** + * + * @generated + */ + private EClass isGreaterThanEqualOperatorEClass = null; + + /** + * + * @generated + */ + private EClass isLowerThanEqualOperatorEClass = null; + + /** + * + * @generated + */ + private EClass arithmeticOperatorEClass = null; + + /** + * + * @generated + */ + private EClass plusOperatorEClass = null; + + /** + * + * @generated + */ + private EClass impliesOperatorEClass = null; + + /** + * + * @generated + */ + private EClass contentOperatorEClass = null; + + /** + * + * @generated + */ + private EClass isActiveEClass = null; + + /** + * + * @generated + */ + private EClass getAllocatablesEClass = null; + + /** + * + * @generated + */ + private EClass hasBeenDisplayedEClass = null; + + /** + * + * @generated + */ + private EClass activeStateEClass = null; + + /** + * + * @generated + */ + private EClass objectCompareEClass = null; + + /** + * + * @generated + */ + private EClass thatOfOperatorEClass = null; + + /** + * + * @generated + */ + private EClass valueExpressionEClass = null; + + /** + * + * @generated + */ + private EClass maxValueEClass = null; + + /** + * + * @generated + */ + private EClass minValueEClass = null; + + /** + * + * @generated + */ + private EClass noneValueEClass = null; + + /** + * + * @generated + */ + private EClass standardValueEClass = null; + + /** + * + * @generated + */ + private EClass integerValueEClass = null; + + /** + * + * @generated + */ + private EClass enumExpressionEClass = null; + + /** + * + * @generated + */ + private EClass loserTypeExpressionEClass = null; + + /** + * + * @generated + */ + private EClass arbitrationPolicyExpressionEClass = null; + + /** + * + * @generated + */ + private EClass setExpressionEClass = null; + + /** + * + * @generated + */ + private EClass setOperatorEClass = null; + + /** + * + * @generated + */ + private EClass sizeOperatorEClass = null; + + /** + * + * @generated + */ + private EClass existsOperatorEClass = null; + + /** + * + * @generated + */ + private EClass forAllOperatorEClass = null; + + /** + * + * @generated + */ + private EClass maxOperatorEClass = null; + + /** + * + * @generated + */ + private EClass minOperatorEClass = null; + + /** + * + * @generated + */ + private EClass selectOperatorEClass = null; + + /** + * + * @generated + */ + private EClass setOfOperatorEClass = null; + + /** + * + * @generated + */ + private EClass lambdaExpressionEClass = null; + + /** + * + * @generated + */ + private EClass variableEClass = null; + + /** + * + * @generated + */ + private EClass lambdaContextEClass = null; + + /** + * + * @generated + */ + private EClass ifStatementEClass = null; + + /** + * + * @generated + */ + private EClass sceneOperatorEClass = null; + + /** + * + * @generated + */ + private EClass isOnEClass = null; + + /** + * + * @generated + */ + private EClass allocatableOperatorEClass = null; + + /** + * + * @generated + */ + private EClass allocatedContentEClass = null; + + /** + * + * @generated + */ + private EClass contentValueEClass = null; + + /** + * + * @generated + */ + private EClass getContentsListEClass = null; + + /** + * + * @generated + */ + private EClass activeContentsEClass = null; + + /** + * + * @generated + */ + private EClass propertyOperatorEClass = null; + + /** + * + * @generated + */ + private EClass getPropertyEClass = null; + + /** + * + * @generated + */ + private EClass stateValueEClass = null; + + /** + * + * @generated + */ + private EClass hasComeLaterThanEClass = null; + + /** + * + * @generated + */ + private EClass hasComeEarlierThanEClass = null; + + /** + * + * @generated + */ + private EClass sugarExpressionEClass = null; + + /** + * + * @generated + */ + private EClass sugarExpressionBaseEClass = null; + + /** + * + * @generated + */ + private EClass objectCompareNotEClass = null; + + /** + * + * @generated + */ + private EClass isAllocatedToEClass = null; + + /** + * + * @generated + */ + private EClass isChangedEClass = null; + + /** + * + * @generated + */ + private EClass isTranslatedToEClass = null; + + /** + * + * @generated + */ + private EClass getStateEClass = null; + + /** + * + * @generated + */ + private EClass contentStateOperatorEClass = null; + + /** + * + * + * @generated + */ + private EClass nullExpressionEClass = null; + + /** + * + * @generated + */ + private EEnum arbitrationPolicyEEnum = null; + + /** + * + * @generated + */ + private EEnum expressionTypeEEnum = null; + + /** + * + * @generated + */ + private EEnum loserTypeEEnum = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

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. + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see rba.core.RBACorePackage#eNS_URI + * @see #init() + * @generated + */ + private RBACorePackageImpl() { + super(eNS_URI, RBACoreFactory.eINSTANCE); + } + + /** + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *

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. + * + * @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; + } + + /** + * + * @generated + */ + public EClass getModelElement() { + return modelElementEClass; + } + + /** + * + * @generated + */ + public EAttribute getModelElement_Description() { + return (EAttribute) modelElementEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EClass getNamedElement() { + return namedElementEClass; + } + + /** + * + * @generated + */ + public EAttribute getNamedElement_Name() { + return (EAttribute) namedElementEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EClass getAbstractAllocatable() { + return abstractAllocatableEClass; + } + + /** + * + * @generated + */ + public EReference getAbstractAllocatable_Contents() { + return (EReference) abstractAllocatableEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getAbstractAllocatable_AllocatableGroup() { + return (EReference) abstractAllocatableEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EOperation getAbstractAllocatable__GetContentsList() { + return abstractAllocatableEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getAbstractAllocatable__CollectLeafAllocatable() { + return abstractAllocatableEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getAllocatable() { + return allocatableEClass; + } + + /** + * + * @generated + */ + public EAttribute getAllocatable_ArbitrationPolicy() { + return (EAttribute) allocatableEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getAllocatable_Visibility() { + return (EReference) allocatableEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EOperation getAllocatable__CollectLeafAllocatable() { + return allocatableEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getAllocatableSet() { + return allocatableSetEClass; + } + + /** + * + * @generated + */ + public EReference getAllocatableSet_Target() { + return (EReference) allocatableSetEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getAllocatableSet__CollectLeafAllocatable() { + return allocatableSetEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getProject() { + return projectEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getProject_Version() { + return (EAttribute) projectEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getProject_DummyName() { + return (EAttribute) projectEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EOperation getProject__GetName() { + return projectEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getPackagableElement() { + return packagableElementEClass; + } + + /** + * + * @generated + */ + public EClass getPackage() { + return packageEClass; + } + + /** + * + * @generated + */ + public EReference getPackage_Packagableelement() { + return (EReference) packageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EClass getStereotype() { + return stereotypeEClass; + } + + /** + * + * @generated + */ + public EAttribute getStereotype_TargetModelName() { + return (EAttribute) stereotypeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EAttribute getStereotype_BodyText() { + return (EAttribute) stereotypeEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getTag() { + return tagEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getTag_Values() { + return (EAttribute) tagEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getStereotype_Variables() { + return (EReference) stereotypeEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EClass getRuleObject() { + return ruleObjectEClass; + } + + /** + * + * + * @generated + */ + public EReference getRuleObject_Tags() { + return (EReference) ruleObjectEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getRuleObject__GetExpressionType() { + return ruleObjectEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getAbstractContent() { + return abstractContentEClass; + } + + /** + * + * @generated + */ + public EReference getAbstractContent_ContentGroup() { + return (EReference) abstractContentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getAbstractContent_Allocatable() { + return (EReference) abstractContentEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EOperation getAbstractContent__GetAllocatableList() { + return abstractContentEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getAbstractContent__CollectLeafContents() { + return abstractContentEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getAbstractScene() { + return abstractSceneEClass; + } + + /** + * + * @generated + */ + public EClass getScene() { + return sceneEClass; + } + + /** + * + * @generated + */ + public EAttribute getScene_Global() { + return (EAttribute) sceneEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getScene_Properties() { + return (EReference) sceneEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EOperation getScene__GetExpressionType() { + return sceneEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getContent() { + return contentEClass; + } + + /** + * + * @generated + */ + public EAttribute getContent_LoserType() { + return (EAttribute) contentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getContent_States() { + return (EReference) contentEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EOperation getContent__CollectLeafContents() { + return contentEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getContentSet() { + return contentSetEClass; + } + + /** + * + * @generated + */ + public EReference getContentSet_Target() { + return (EReference) contentSetEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getContentSet__CollectLeafContents() { + return contentSetEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getContentState() { + return contentStateEClass; + } + + /** + * + * @generated + */ + public EReference getContentState_Value() { + return (EReference) contentStateEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getContentState_Owner() { + return (EReference) contentStateEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EClass getAbstractProperty() { + return abstractPropertyEClass; + } + + /** + * + * @generated + */ + public EReference getAbstractProperty_Owner() { + return (EReference) abstractPropertyEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getAbstractProperty__GetExpressionType() { + return abstractPropertyEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIntegerProperty() { + return integerPropertyEClass; + } + + /** + * + * @generated + */ + public EReference getIntegerProperty_Value() { + return (EReference) integerPropertyEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EClass getAbstractConstraint() { + return abstractConstraintEClass; + } + + /** + * + * @generated + */ + public EReference getAbstractConstraint_Expression() { + return (EReference) abstractConstraintEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EClass getConstraint() { + return constraintEClass; + } + + /** + * + * @generated + */ + public EAttribute getConstraint_Runtime() { + return (EAttribute) constraintEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EClass getExpression() { + return expressionEClass; + } + + /** + * + * @generated + */ + public EAttribute getExpression_Type() { + return (EAttribute) expressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EAttribute getExpression_Expression() { + return (EAttribute) expressionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EReference getExpression_LetStatements() { + return (EReference) expressionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * @generated + */ + public EOperation getExpression__GetUnderlyingType() { + return expressionEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getExpression__GetExpressionText() { + return expressionEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getLetStatement() { + return letStatementEClass; + } + + /** + * + * @generated + */ + public EReference getLetStatement_Variable() { + return (EReference) letStatementEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getLetStatement_Body() { + return (EReference) letStatementEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EOperation getLetStatement__ToString() { + return letStatementEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getComplexExpression() { + return complexExpressionEClass; + } + + /** + * + * @generated + */ + public EReference getComplexExpression_OtherExpression() { + return (EReference) complexExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getComplexExpression__GetExpressionText() { + return complexExpressionEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getComplexExpression__GetUnderlyingType() { + return complexExpressionEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getComplexExpression__GetType() { + return complexExpressionEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getOperator() { + return operatorEClass; + } + + /** + * + * @generated + */ + public EReference getOperator_Operand() { + return (EReference) operatorEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getOperator__GetSymbol() { + return operatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIsTypeOf() { + return isTypeOfEClass; + } + + /** + * + * @generated + */ + public EAttribute getIsTypeOf_TagName() { + return (EAttribute) isTypeOfEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsTypeOf__GetExpressionText() { + return isTypeOfEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsTypeOf__GetSymbol() { + return isTypeOfEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getIsTypeOf__GetUnderlyingType() { + return isTypeOfEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getObjectReference() { + return objectReferenceEClass; + } + + /** + * + * @generated + */ + public EReference getObjectReference_RefObject() { + return (EReference) objectReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getObjectReference__GetUnderlyingType() { + return objectReferenceEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getObjectReference__GetExpressionText() { + return objectReferenceEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getPreviousModifier() { + return previousModifierEClass; + } + + /** + * + * @generated + */ + public EReference getPreviousModifier_ObjReference() { + return (EReference) previousModifierEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getPreviousModifier__GetSymbol() { + return previousModifierEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getPreviousModifier__GetUnderlyingType() { + return previousModifierEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getPreviousModifier__GetExpressionText() { + return previousModifierEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getGreaterThanOperator() { + return greaterThanOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getGreaterThanOperator__GetSymbol() { + return greaterThanOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getMuchGreaterThanOperator() { + return muchGreaterThanOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getMuchGreaterThanOperator__GetSymbol() { + return muchGreaterThanOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getLowerThanOperator() { + return lowerThanOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getLowerThanOperator__GetSymbol() { + return lowerThanOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getComparisonOperator() { + return comparisonOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getComparisonOperator__GetUnderlyingType() { + return comparisonOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getComparisonOperator__GetExpressionText() { + return comparisonOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getEqualToOperator() { + return equalToOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getEqualToOperator__GetSymbol() { + return equalToOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getComparisonAnd() { + return comparisonAndEClass; + } + + /** + * + * @generated + */ + public EOperation getComparisonAnd__GetSymbol() { + return comparisonAndEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getComparisonAnd__GetExpressionText() { + return comparisonAndEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getLogicalOperator() { + return logicalOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getLogicalOperator__GetUnderlyingType() { + return logicalOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getLogicalOperator__GetExpressionText() { + return logicalOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getAndOperator() { + return andOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getAndOperator__GetSymbol() { + return andOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getOrOperator() { + return orOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getOrOperator__GetSymbol() { + return orOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getNotOperator() { + return notOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getNotOperator__GetSymbol() { + return notOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getNotOperator__GetExpressionText() { + return notOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getIsEqualToOperator() { + return isEqualToOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getIsEqualToOperator__GetSymbol() { + return isEqualToOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIsGreaterThanOperator() { + return isGreaterThanOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getIsGreaterThanOperator__GetSymbol() { + return isGreaterThanOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIsLowerThanOperator() { + return isLowerThanOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getIsLowerThanOperator__GetSymbol() { + return isLowerThanOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIsGreaterThanEqualOperator() { + return isGreaterThanEqualOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getIsGreaterThanEqualOperator__GetSymbol() { + return isGreaterThanEqualOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIsLowerThanEqualOperator() { + return isLowerThanEqualOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getIsLowerThanEqualOperator__GetSymbol() { + return isLowerThanEqualOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getArithmeticOperator() { + return arithmeticOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getArithmeticOperator__GetUnderlyingType() { + return arithmeticOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getArithmeticOperator__GetExpressionText() { + return arithmeticOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getPlusOperator() { + return plusOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getPlusOperator__GetSymbol() { + return plusOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getImpliesOperator() { + return impliesOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getImpliesOperator__GetSymbol() { + return impliesOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getContentOperator() { + return contentOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getContentOperator__GetExpressionText() { + return contentOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIsActive() { + return isActiveEClass; + } + + /** + * + * @generated + */ + public EOperation getIsActive__GetSymbol() { + return isActiveEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsActive__GetUnderlyingType() { + return isActiveEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getGetAllocatables() { + return getAllocatablesEClass; + } + + /** + * + * @generated + */ + public EOperation getGetAllocatables__GetSymbol() { + return getAllocatablesEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getGetAllocatables__GetUnderlyingType() { + return getAllocatablesEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getHasBeenDisplayed() { + return hasBeenDisplayedEClass; + } + + /** + * + * @generated + */ + public EOperation getHasBeenDisplayed__GetSymbol() { + return hasBeenDisplayedEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getHasBeenDisplayed__GetUnderlyingType() { + return hasBeenDisplayedEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getActiveState() { + return activeStateEClass; + } + + /** + * + * @generated + */ + public EOperation getActiveState__GetSymbol() { + return activeStateEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getActiveState__GetUnderlyingType() { + return activeStateEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getObjectCompare() { + return objectCompareEClass; + } + + /** + * + * @generated + */ + public EOperation getObjectCompare__GetSymbol() { + return objectCompareEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getObjectCompare__GetUnderlyingType() { + return objectCompareEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getObjectCompare__GetExpressionText() { + return objectCompareEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getThatOfOperator() { + return thatOfOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getThatOfOperator__GetExpressionText() { + return thatOfOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getThatOfOperator__GetSymbol() { + return thatOfOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getThatOfOperator__GetUnderlyingType() { + return thatOfOperatorEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getValueExpression() { + return valueExpressionEClass; + } + + /** + * + * @generated + */ + public EOperation getValueExpression__GetUnderlyingType() { + return valueExpressionEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getValueExpression__GetExpressionValue() { + return valueExpressionEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getValueExpression__GetType() { + return valueExpressionEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getMaxValue() { + return maxValueEClass; + } + + /** + * + * @generated + */ + public EOperation getMaxValue__GetExpressionText() { + return maxValueEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getMaxValue__GetExpressionValue() { + return maxValueEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getMinValue() { + return minValueEClass; + } + + /** + * + * @generated + */ + public EOperation getMinValue__GetExpressionText() { + return minValueEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getMinValue__GetExpressionValue() { + return minValueEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getNoneValue() { + return noneValueEClass; + } + + /** + * + * @generated + */ + public EOperation getNoneValue__GetExpressionText() { + return noneValueEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getNoneValue__GetExpressionValue() { + return noneValueEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getStandardValue() { + return standardValueEClass; + } + + /** + * + * @generated + */ + public EOperation getStandardValue__GetExpressionText() { + return standardValueEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getStandardValue__GetExpressionValue() { + return standardValueEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getIntegerValue() { + return integerValueEClass; + } + + /** + * + * @generated + */ + public EAttribute getIntegerValue_Value() { + return (EAttribute) integerValueEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getIntegerValue__GetExpressionText() { + return integerValueEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIntegerValue__GetExpressionValue() { + return integerValueEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getEnumExpression() { + return enumExpressionEClass; + } + + /** + * + * @generated + */ + public EOperation getEnumExpression__GetUnderlyingType() { + return enumExpressionEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getEnumExpression__GetExpressionValue() { + return enumExpressionEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getEnumExpression__GetType() { + return enumExpressionEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getLoserTypeExpression() { + return loserTypeExpressionEClass; + } + + /** + * + * @generated + */ + public EAttribute getLoserTypeExpression_Value() { + return (EAttribute) loserTypeExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getLoserTypeExpression__GetExpressionText() { + return loserTypeExpressionEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getLoserTypeExpression__GetExpressionValue() { + return loserTypeExpressionEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getArbitrationPolicyExpression() { + return arbitrationPolicyExpressionEClass; + } + + /** + * + * @generated + */ + public EAttribute getArbitrationPolicyExpression_Value() { + return (EAttribute) arbitrationPolicyExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getArbitrationPolicyExpression__GetExpressionText() { + return arbitrationPolicyExpressionEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getArbitrationPolicyExpression__GetExpressionValue() { + return arbitrationPolicyExpressionEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getSetExpression() { + return setExpressionEClass; + } + + /** + * + * @generated + */ + public EClass getSetOperator() { + return setOperatorEClass; + } + + /** + * + * @generated + */ + public EClass getSizeOperator() { + return sizeOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getSizeOperator__GetExpressionText() { + return sizeOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getSizeOperator__GetSymbol() { + return sizeOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getSizeOperator__GetUnderlyingType() { + return sizeOperatorEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getExistsOperator() { + return existsOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getExistsOperator__GetExpressionText() { + return existsOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getExistsOperator__GetSymbol() { + return existsOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getExistsOperator__GetUnderlyingType() { + return existsOperatorEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getForAllOperator() { + return forAllOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getForAllOperator__GetExpressionText() { + return forAllOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getForAllOperator__GetSymbol() { + return forAllOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getForAllOperator__GetUnderlyingType() { + return forAllOperatorEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getMaxOperator() { + return maxOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getMaxOperator__GetExpressionText() { + return maxOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getMaxOperator__GetSymbol() { + return maxOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getMaxOperator__GetUnderlyingType() { + return maxOperatorEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getMinOperator() { + return minOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getMinOperator__GetExpressionText() { + return minOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getMinOperator__GetSymbol() { + return minOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getMinOperator__GetUnderlyingType() { + return minOperatorEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getSelectOperator() { + return selectOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getSelectOperator__GetExpressionText() { + return selectOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getSelectOperator__GetSymbol() { + return selectOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getSelectOperator__GetUnderlyingType() { + return selectOperatorEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getSetOfOperator() { + return setOfOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getSetOfOperator__GetExpressionText() { + return setOfOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getSetOfOperator__GetSymbol() { + return setOfOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getSetOfOperator__GetUnderlyingType() { + return setOfOperatorEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getLambdaExpression() { + return lambdaExpressionEClass; + } + + /** + * + * @generated + */ + public EReference getLambdaExpression_Context() { + return (EReference) lambdaExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getLambdaExpression_X() { + return (EReference) lambdaExpressionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EReference getLambdaExpression_BodyText() { + return (EReference) lambdaExpressionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * @generated + */ + public EOperation getLambdaExpression__GetExpressionText() { + return lambdaExpressionEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getLambdaExpression__GetUnderlyingType() { + return lambdaExpressionEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getVariable() { + return variableEClass; + } + + /** + * + * @generated + */ + public EOperation getVariable__GetExpressionType() { + return variableEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getLambdaContext() { + return lambdaContextEClass; + } + + /** + * + * @generated + */ + public EReference getLambdaContext_Lambda() { + return (EReference) lambdaContextEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getLambdaContext__GetContextType() { + return lambdaContextEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIfStatement() { + return ifStatementEClass; + } + + /** + * + * @generated + */ + public EReference getIfStatement_Condition() { + return (EReference) ifStatementEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getIfStatement_ThenExpression() { + return (EReference) ifStatementEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EReference getIfStatement_ElseExpression() { + return (EReference) ifStatementEClass.getEStructuralFeatures().get(2); + } + + /** + * + * @generated + */ + public EOperation getIfStatement__GetUnderlyingType() { + return ifStatementEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIfStatement__GetExpressionText() { + return ifStatementEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getSceneOperator() { + return sceneOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getSceneOperator__GetExpressionText() { + return sceneOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIsOn() { + return isOnEClass; + } + + /** + * + * @generated + */ + public EOperation getIsOn__GetSymbol() { + return isOnEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsOn__GetUnderlyingType() { + return isOnEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getAllocatableOperator() { + return allocatableOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getAllocatableOperator__GetExpressionText() { + return allocatableOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getAllocatedContent() { + return allocatedContentEClass; + } + + /** + * + * @generated + */ + public EOperation getAllocatedContent__GetSymbol() { + return allocatedContentEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getAllocatedContent__GetUnderlyingType() { + return allocatedContentEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getContentValue() { + return contentValueEClass; + } + + /** + * + * @generated + */ + public EOperation getContentValue__GetSymbol() { + return contentValueEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getContentValue__GetUnderlyingType() { + return contentValueEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getGetContentsList() { + return getContentsListEClass; + } + + /** + * + * @generated + */ + public EOperation getGetContentsList__GetSymbol() { + return getContentsListEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getGetContentsList__GetUnderlyingType() { + return getContentsListEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getActiveContents() { + return activeContentsEClass; + } + + /** + * + * @generated + */ + public EOperation getActiveContents__GetSymbol() { + return activeContentsEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getActiveContents__GetUnderlyingType() { + return activeContentsEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getPropertyOperator() { + return propertyOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getPropertyOperator__GetUnderlyingType() { + return propertyOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getPropertyOperator__GetExpressionText() { + return propertyOperatorEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getGetProperty() { + return getPropertyEClass; + } + + /** + * + * @generated + */ + public EOperation getGetProperty__GetSymbol() { + return getPropertyEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getGetProperty__GetUnderlyingType() { + return getPropertyEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getStateValue() { + return stateValueEClass; + } + + /** + * + * @generated + */ + public EOperation getStateValue__GetSymbol() { + return stateValueEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getStateValue__GetUnderlyingType() { + return stateValueEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getHasComeLaterThan() { + return hasComeLaterThanEClass; + } + + /** + * + * @generated + */ + public EOperation getHasComeLaterThan__GetSymbol() { + return hasComeLaterThanEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getHasComeLaterThan__GetUnderlyingType() { + return hasComeLaterThanEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getHasComeLaterThan__GetExpressionText() { + return hasComeLaterThanEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getHasComeEarlierThan() { + return hasComeEarlierThanEClass; + } + + /** + * + * @generated + */ + public EOperation getHasComeEarlierThan__GetSymbol() { + return hasComeEarlierThanEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getHasComeEarlierThan__GetUnderlyingType() { + return hasComeEarlierThanEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getHasComeEarlierThan__GetExpressionText() { + return hasComeEarlierThanEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getSugarExpression() { + return sugarExpressionEClass; + } + + /** + * + * @generated + */ + public EOperation getSugarExpression__CanExpand() { + return sugarExpressionEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getSugarExpression__GetExpanded() { + return sugarExpressionEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getSugarExpressionBase() { + return sugarExpressionBaseEClass; + } + + /** + * + * @generated + */ + public EOperation getSugarExpressionBase__CanExpand() { + return sugarExpressionBaseEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getObjectCompareNot() { + return objectCompareNotEClass; + } + + /** + * + * @generated + */ + public EOperation getObjectCompareNot__GetSymbol() { + return objectCompareNotEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getObjectCompareNot__GetUnderlyingType() { + return objectCompareNotEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getObjectCompareNot__GetExpressionText() { + return objectCompareNotEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getIsAllocatedTo() { + return isAllocatedToEClass; + } + + /** + * + * @generated + */ + public EOperation getIsAllocatedTo__GetSymbol() { + return isAllocatedToEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsAllocatedTo__GetUnderlyingType() { + return isAllocatedToEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getIsAllocatedTo__GetExpressionText() { + return isAllocatedToEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getIsChanged() { + return isChangedEClass; + } + + /** + * + * @generated + */ + public EOperation getIsChanged__GetSymbol() { + return isChangedEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsChanged__GetUnderlyingType() { + return isChangedEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getIsTranslatedTo() { + return isTranslatedToEClass; + } + + /** + * + * @generated + */ + public EOperation getIsTranslatedTo__GetSymbol() { + return isTranslatedToEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsTranslatedTo__GetUnderlyingType() { + return isTranslatedToEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getIsTranslatedTo__GetExpressionText() { + return isTranslatedToEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getGetState() { + return getStateEClass; + } + + /** + * + * @generated + */ + public EOperation getGetState__GetSymbol() { + return getStateEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getContentStateOperator() { + return contentStateOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getContentStateOperator__GetExpressionText() { + return contentStateOperatorEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + public EClass getNullExpression() { + return nullExpressionEClass; + } + + /** + * + * + * @generated + */ + public EOperation getNullExpression__GetUnderlyingType() { + return nullExpressionEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + public EOperation getNullExpression__GetExpressionText() { + return nullExpressionEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EEnum getArbitrationPolicy() { + return arbitrationPolicyEEnum; + } + + /** + * + * @generated + */ + public EEnum getExpressionType() { + return expressionTypeEEnum; + } + + /** + * + * @generated + */ + public EEnum getLoserType() { + return loserTypeEEnum; + } + + /** + * + * @generated + */ + public RBACoreFactory getRBACoreFactory() { + return (RBACoreFactory) getEFactoryInstance(); + } + + /** + * + * @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. + * + * @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); + } + + /** + * + * @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. + * + * @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 http://www.eclipse.org/OCL/Import. + * + * @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; + +/** + * An implementation of the model object 'Rule Object'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.RuleObjectImpl#getTags Tags}
  • + *
+ * + * @generated + */ +public abstract class RuleObjectImpl extends PackagableElementImpl implements RuleObject { + /** + * The cached value of the '{@link #getTags() Tags}' containment reference list. + * + * + * @see #getTags() + * @generated + * @ordered + */ + protected EList tags; + + /** + * + * @generated + */ + protected RuleObjectImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.RULE_OBJECT; + } + + /** + * + * + * @generated + */ + public EList getTags() { + if (tags == null) { + tags = new EObjectContainmentEList(Tag.class, this, RBACorePackage.RULE_OBJECT__TAGS); + } + return tags; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @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); + } + + /** + * + * + * @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); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.RULE_OBJECT__TAGS: + getTags().clear(); + getTags().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.RULE_OBJECT__TAGS: + getTags().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.RULE_OBJECT__TAGS: + return tags != null && !tags.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Scene'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.SceneImpl#isGlobal Global}
  • + *
  • {@link rba.core.impl.SceneImpl#getProperties Properties}
  • + *
+ * + * @generated + */ +public class SceneImpl extends AbstractSceneImpl implements Scene { + /** + * The default value of the '{@link #isGlobal() Global}' attribute. + * + * @see #isGlobal() + * @generated + * @ordered + */ + protected static final boolean GLOBAL_EDEFAULT = false; + + /** + * The cached value of the '{@link #isGlobal() Global}' attribute. + * + * @see #isGlobal() + * @generated + * @ordered + */ + protected boolean global = GLOBAL_EDEFAULT; + + /** + * The cached value of the '{@link #getProperties() Properties}' containment reference list. + * + * @see #getProperties() + * @generated + * @ordered + */ + protected EList properties; + + /** + * + * @generated + */ + protected SceneImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.SCENE; + } + + /** + * + * @generated + */ + public boolean isGlobal() { + return global; + } + + /** + * + * @generated + */ + public void setGlobal(boolean newGlobal) { + boolean oldGlobal = global; + global = newGlobal; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.SCENE__GLOBAL, oldGlobal, global)); + } + + /** + * + * @generated + */ + public EList getProperties() { + if (properties == null) { + properties = new EObjectContainmentWithInverseEList(AbstractProperty.class, this, + RBACorePackage.SCENE__PROPERTIES, RBACorePackage.ABSTRACT_PROPERTY__OWNER); + } + return properties; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.SCENE; + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case RBACorePackage.SCENE__PROPERTIES: + return ((InternalEList) (InternalEList) getProperties()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Scene Operator'. + * + * @generated + */ +public abstract class SceneOperatorImpl extends OperatorImpl implements SceneOperator { + /** + * + * @generated + */ + protected SceneOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.SCENE_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList expressions = getOperand(); + expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]"); + expressionText.append(getSymbol()); + return expressionText.toString(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Select Operator'. + * + * @generated + */ +public class SelectOperatorImpl extends LambdaContextImpl implements SelectOperator { + /** + * + * @generated + */ + protected SelectOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.SELECT_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".select"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + if (!getOperand().isEmpty()) { + Expression first = getOperand().get(0); + return first.getType(); + } + return ExpressionType.VALUE; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Set Expression'. + * + * @generated + */ +public abstract class SetExpressionImpl extends ExpressionImpl implements SetExpression { + /** + * + * @generated + */ + protected SetExpressionImpl() { + super(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Set Of Operator'. + * + * @generated + */ +public class SetOfOperatorImpl extends OperatorImpl implements SetOfOperator { + /** + * + * @generated + */ + protected SetOfOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.SET_OF_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList 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(); + } + + /** + * + * @generated + */ + public String getSymbol() { + return ""; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + EList 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; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Set Operator'. + * + * @generated + */ +public abstract class SetOperatorImpl extends OperatorImpl implements SetOperator { + /** + * + * @generated + */ + protected SetOperatorImpl() { + super(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Size Operator'. + * + * @generated + */ +public class SizeOperatorImpl extends SetOperatorImpl implements SizeOperator { + /** + * + * @generated + */ + protected SizeOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.SIZE_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList expressions = getOperand(); + expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]"); + expressionText.append(getSymbol()); + return expressionText.toString(); + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".size()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.VALUE; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Standard Value'. + * + * @generated + */ +public class StandardValueImpl extends ValueExpressionImpl implements StandardValue { + /** + * + * @generated + */ + protected StandardValueImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.STANDARD_VALUE; + } + + /** + * + * @generated + */ + public String getExpressionText() { + return "STANDARD"; + } + + /** + * + * @generated + */ + public int getExpressionValue() { + return 10; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'State Value'. + * + * @generated + */ +public class StateValueImpl extends ContentOperatorImpl implements StateValue { + /** + * + * @generated + */ + protected StateValueImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.STATE_VALUE; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".stateValue()"; //$NON-NLS-1$ + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.VALUE; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Stereotype'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.StereotypeImpl#getTargetModelName Target Model Name}
  • + *
  • {@link rba.core.impl.StereotypeImpl#getVariables Variables}
  • + *
  • {@link rba.core.impl.StereotypeImpl#getBodyText Body Text}
  • + *
+ * + * @generated + */ +public class StereotypeImpl extends PackagableElementImpl implements Stereotype { + /** + * The default value of the '{@link #getTargetModelName() Target Model Name}' attribute. + * + * + * @see #getTargetModelName() + * @generated + * @ordered + */ + protected static final String TARGET_MODEL_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTargetModelName() Target Model Name}' attribute. + * + * + * @see #getTargetModelName() + * @generated + * @ordered + */ + protected String targetModelName = TARGET_MODEL_NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getVariables() Variables}' containment reference list. + * + * + * @see #getVariables() + * @generated + * @ordered + */ + protected EList variables; + + /** + * The default value of the '{@link #getBodyText() Body Text}' attribute. + * @see #getBodyText() + * @generated + * @ordered + */ + protected static final String BODY_TEXT_EDEFAULT = null; + + /** + * The cached value of the '{@link #getBodyText() Body Text}' attribute. + * @see #getBodyText() + * @generated + * @ordered + */ + protected String bodyText = BODY_TEXT_EDEFAULT; + + /** + * + * @generated + */ + protected StereotypeImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.STEREOTYPE; + } + + /** + * + * @generated + */ + public String getTargetModelName() { + return targetModelName; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public String getBodyText() { + return bodyText; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public EList getVariables() { + if (variables == null) { + variables = new EObjectContainmentEList(Variable.class, this, + RBACorePackage.STEREOTYPE__VARIABLES); + } + return variables; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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) newValue); + return; + case RBACorePackage.STEREOTYPE__BODY_TEXT: + setBodyText((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * + * An implementation of the model object 'Tag'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.core.impl.TagImpl#getValues Values}
  • + *
+ * + * @generated + */ +public class TagImpl extends NamedElementImpl implements Tag { + /** + * The cached value of the '{@link #getValues() Values}' attribute list. + * + * + * @see #getValues() + * @generated + * @ordered + */ + protected EList values; + + /** + * + * + * @generated + */ + protected TagImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.TAG; + } + + /** + * + * + * @generated + */ + public EList getValues() { + if (values == null) { + values = new EDataTypeEList(String.class, this, RBACorePackage.TAG__VALUES); + } + return values; + } + + /** + * + * + * @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); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBACorePackage.TAG__VALUES: + getValues().clear(); + getValues().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBACorePackage.TAG__VALUES: + getValues().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBACorePackage.TAG__VALUES: + return values != null && !values.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @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; + +/** + * An implementation of the model object 'That Of Operator'. + * + * @generated + */ +public class ThatOfOperatorImpl extends OperatorImpl implements ThatOfOperator { + /** + * + * @generated + */ + protected ThatOfOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.THAT_OF_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList expressions = getOperand(); + expressionText.append(getSymbol()); + expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]"); + return expressionText.toString(); + } + + /** + * + * @generated + */ + public String getSymbol() { + return "That of "; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.VALUE; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Value Expression'. + * + * @generated + */ +public abstract class ValueExpressionImpl extends ExpressionImpl implements ValueExpression { + /** + * + * @generated + */ + protected ValueExpressionImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.VALUE_EXPRESSION; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.VALUE; + } + + /** + * + * @generated + */ + public int getExpressionValue() { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * @generated + */ + public ExpressionType getType() { + return getUnderlyingType(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Variable'. + * + * @generated + */ +public class VariableImpl extends RuleObjectImpl implements Variable { + /** + * + * @generated + */ + protected VariableImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBACorePackage.Literals.VARIABLE; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + EObject container = eContainer(); + if (container instanceof LambdaExpression) { + container = container.eContainer(); + if (container instanceof LambdaContext) { + List 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; + } + + /** + * + * @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; + +/** + * The Adapter Factory for the model. It provides an adapter createXXX method for + * each class of the model. + * @see rba.core.RBACorePackage + * @generated + */ +public class RBACoreAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * + * @generated + */ + protected static RBACorePackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * @generated + */ + public RBACoreAdapterFactory() { + if (modelPackage == null) { + modelPackage = RBACorePackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * This implementation + * returns true if the object is either the model's package or is an instance object of the model. + * @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 createXXX methods. + * + * @generated + */ + protected RBACoreSwitch modelSwitch = new RBACoreSwitch() { + @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 target. + * + * @param target the object to adapt. + * @return the adapter for the target. + * @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 Model Element}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Named Element}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Abstract Allocatable}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Allocatable}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Allocatable Set}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Project}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Packagable Element}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Package}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Stereotype}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Tag}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @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 Rule Object}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Abstract Content}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Abstract Scene}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Scene}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Content}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Content Set}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Content State}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Abstract Property}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Integer Property}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Abstract Constraint}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Constraint}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Let Statement}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Complex Expression}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Operator}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Is Type Of}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Object Reference}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Previous Modifier}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Greater Than Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Much Greater Than Operator}'. + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * @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 Lower Than Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Comparison Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Equal To Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Comparison And}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Logical Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 And Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Or Operator}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Not Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Is Equal To Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is Greater Than Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to + * ignore a case when inheritance will catch all the cases anyway. + * @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 Is Lower Than Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is Greater Than Equal Operator}'. + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * @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 Is Lower Than Equal Operator}'. + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * @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 Arithmetic Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Plus Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Implies Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Content Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is Active}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Get Allocatables}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Has Been Displayed}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Active State}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Object Compare}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 That Of Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Value Expression}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Max Value}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Min Value}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 None Value}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Standard Value}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Integer Value}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Enum Expression}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Loser Type Expression}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Arbitration Policy Expression}'. + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * @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 Set Expression}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Set Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Size Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Exists Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 For All Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Max Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Min Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Select Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Set Of Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Lambda Expression}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Variable}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Lambda Context}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 If Statement}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Scene Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is On}'. + * This default + * implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance will catch + * all the cases anyway. + * @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 Allocatable Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Allocated Content}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Content Value}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Get Contents List}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Active Contents}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Property Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Get Property}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 State Value}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Has Come Later Than}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Has Come Earlier Than}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Sugar Expression}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Sugar Expression Base}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Object Compare Not}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is Allocated To}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is Changed}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Is Translated To}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Get State}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Content State Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to + * ignore a case when inheritance will catch all the cases anyway. + * @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 Null Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see rba.core.NullExpression + * @generated + */ + public Adapter createNullExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * This default implementation returns null. + * @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; + +/** + * The Switch for the model's inheritance hierarchy. It supports the call + * {@link #doSwitch(EObject) doSwitch(object)} to invoke the caseXXX 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. + * @see rba.core.RBACorePackage + * @generated + */ +public class RBACoreSwitch extends Switch { + /** + * The cached model package + * + * @generated + */ + protected static RBACorePackage modelPackage; + + /** + * Creates an instance of the switch. + * + * @generated + */ + public RBACoreSwitch() { + if (modelPackage == null) { + modelPackage = RBACorePackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * + * @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 caseXXX for each class of the model until one returns a non null result; it yields that result. + * @return the first non-null result returned by a caseXXX 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 'Model Element'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Model Element'. + * @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 'Named Element'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Named Element'. + * @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 'Abstract Allocatable'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Abstract Allocatable'. + * @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 'Allocatable'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Allocatable'. + * @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 'Allocatable Set'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Allocatable Set'. + * @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 'Project'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Project'. + * @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 'Packagable Element'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Packagable Element'. + * @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 'Package'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Package'. + * @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 'Stereotype'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Stereotype'. + * @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 'Tag'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Tag'. + * @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 'Rule Object'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Rule Object'. + * @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 'Abstract Content'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Abstract Content'. + * @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 'Abstract Scene'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Abstract Scene'. + * @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 'Scene'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Scene'. + * @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 'Content'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content'. + * @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 'Content Set'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content Set'. + * @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 'Content State'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content State'. + * @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 'Abstract Property'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Abstract Property'. + * @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 'Integer Property'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Integer Property'. + * @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 'Abstract Constraint'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Abstract Constraint'. + * @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 'Constraint'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Constraint'. + * @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 'Expression'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Expression'. + * @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 'Let Statement'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Let Statement'. + * @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 'Complex Expression'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Complex Expression'. + * @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 'Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Operator'. + * @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 'Is Type Of'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Type Of'. + * @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 'Object Reference'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Object Reference'. + * @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 'Previous Modifier'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Previous Modifier'. + * @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 'Greater Than Operator'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Greater Than Operator'. + * @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 'Much Greater Than Operator'. This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Much Greater Than Operator'. + * @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 'Lower Than Operator'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Lower Than Operator'. + * @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 'Comparison Operator'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Comparison Operator'. + * @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 'Equal To Operator'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Equal To Operator'. + * @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 'Comparison And'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Comparison And'. + * @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 'Logical Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Logical Operator'. + * @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 'And Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'And Operator'. + * @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 'Or Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Or Operator'. + * @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 'Not Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Not Operator'. + * @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 'Is Equal To Operator'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Equal To Operator'. + * @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 'Is Greater Than Operator'. + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Greater Than Operator'. + * @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 'Is Lower Than Operator'. + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Lower Than Operator'. + * @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 'Is Greater Than Equal Operator'. This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Greater Than Equal Operator'. + * @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 'Is Lower Than Equal Operator'. This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Lower Than Equal Operator'. + * @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 'Arithmetic Operator'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Arithmetic Operator'. + * @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 'Plus Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Plus Operator'. + * @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 'Implies Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Implies Operator'. + * @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 'Content Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content Operator'. + * @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 'Is Active'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Active'. + * @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 'Get Allocatables'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Get Allocatables'. + * @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 'Has Been Displayed'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Has Been Displayed'. + * @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 'Active State'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Active State'. + * @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 'Object Compare'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Object Compare'. + * @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 'That Of Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'That Of Operator'. + * @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 'Value Expression'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Value Expression'. + * @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 'Max Value'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Max Value'. + * @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 'Min Value'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Min Value'. + * @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 'None Value'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'None Value'. + * @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 'Standard Value'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Standard Value'. + * @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 'Integer Value'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Integer Value'. + * @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 'Enum Expression'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Enum Expression'. + * @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 'Loser Type Expression'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Loser Type Expression'. + * @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 'Arbitration Policy Expression'. This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Arbitration Policy Expression'. + * @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 'Set Expression'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Set Expression'. + * @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 'Set Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Set Operator'. + * @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 'Size Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Size Operator'. + * @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 'Exists Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Exists Operator'. + * @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 'For All Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'For All Operator'. + * @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 'Max Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Max Operator'. + * @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 'Min Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Min Operator'. + * @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 'Select Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Select Operator'. + * @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 'Set Of Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Set Of Operator'. + * @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 'Lambda Expression'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Lambda Expression'. + * @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 'Variable'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Variable'. + * @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 'Lambda Context'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Lambda Context'. + * @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 'If Statement'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'If Statement'. + * @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 'Scene Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Scene Operator'. + * @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 'Is On'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is On'. + * @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 'Allocatable Operator'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Allocatable Operator'. + * @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 'Allocated Content'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Allocated Content'. + * @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 'Content Value'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content Value'. + * @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 'Get Contents List'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Get Contents List'. + * @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 'Active Contents'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Active Contents'. + * @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 'Property Operator'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Property Operator'. + * @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 'Get Property'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Get Property'. + * @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 'State Value'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'State Value'. + * @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 'Has Come Later Than'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Has Come Later Than'. + * @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 'Has Come Earlier Than'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Has Come Earlier Than'. + * @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 'Sugar Expression'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Sugar Expression'. + * @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 'Sugar Expression Base'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Sugar Expression Base'. + * @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 'Object Compare Not'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Object Compare Not'. + * @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 'Is Allocated To'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Allocated To'. + * @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 'Is Changed'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Changed'. + * @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 'Is Translated To'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Translated To'. + * @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 'Get State'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Get State'. + * @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 'Content State Operator'. + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content State Operator'. + * @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 'Null Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Null Expression'. + * @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 'EObject'. + * This + * implementation returns null; returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'EObject'. + * @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 @@ + + + + + + + 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 @@ + + + rba.model.sound.edit + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/AllInstanceOfSoundContent.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/AllInstanceOfZone.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/IsAttenuated.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/IsChangedOutput.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/IsMuted.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/IsOutputted.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/IsOutputtedOn.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/IsSounding.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/IsTranslatedSoundTo.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/MuteLowerPriority.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/OutputtingSound.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/SoundContent.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/SoundContentSet.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/SoundContentState.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/Zone.gif 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 Binary files /dev/null and b/rba.model.sound.edit/icons/full/obj16/ZoneSet.gif 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 @@ + + + + + + + + + + + + + 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. + * + * @generated + */ +public class AllInstanceOfSoundContentItemProvider extends SetExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AllInstanceOfSoundContentItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns AllInstanceOfSoundContent.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AllInstanceOfSoundContent")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * @generated + */ +public class AllInstanceOfZoneItemProvider extends SetExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AllInstanceOfZoneItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns AllInstanceOfZone.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AllInstanceOfZone")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * + * @generated + */ +public class IsAttenuatedItemProvider extends ZoneOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsAttenuatedItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsAttenuated.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsAttenuated")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class IsChangedOutputItemProvider extends ZoneOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsChangedOutputItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsChangedOutput.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsChangedOutput")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsMutedItemProvider extends ZoneOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsMutedItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsMuted.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsMuted")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsOutputtedItemProvider extends ZoneOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsOutputtedItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsOutputted.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsOutputted")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsOutputtedOnItemProvider extends SoundContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsOutputtedOnItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsOutputtedOn.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsOutputtedOn")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsSoundingItemProvider extends SoundContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsSoundingItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsSounding.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsSounding")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsTranslatedSoundToItemProvider extends ZoneOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsTranslatedSoundToItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsTranslatedSoundTo.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsTranslatedSoundTo")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class MuteLowerPriorityItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public MuteLowerPriorityItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns MuteLowerPriority.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/MuteLowerPriority")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * @generated + */ +public class OutputtingSoundItemProvider extends ZoneOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public OutputtingSoundItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns OutputtingSound.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/OutputtingSound")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class RBASoundItemProviderAdapterFactory extends RBASoundAdapterFactory + implements ComposeableAdapterFactory, IChangeNotifier, IDisposable { + /** + * This keeps track of the root adapter factory that delegates to this adapter factory. + * + * @generated + */ + protected ComposedAdapterFactory parentAdapterFactory; + + /** + * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. + * + * @generated + */ + protected IChangeNotifier changeNotifier = new ChangeNotifier(); + + /** + * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. + * + * @generated + */ + protected Collection supportedTypes = new ArrayList(); + + /** + * This constructs an instance. + * + * @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. + * + * @generated + */ + protected SoundContentItemProvider soundContentItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.SoundContent}. + * + * @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. + * + * + * @generated + */ + protected SoundContentSetItemProvider soundContentSetItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.SoundContentSet}. + * + * @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. + * + * + * @generated + */ + protected SoundContentStateItemProvider soundContentStateItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.SoundContentState}. + * + * @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. + * + * @generated + */ + protected ZoneItemProvider zoneItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.Zone}. + * + * @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. + * + * @generated + */ + protected ZoneSetItemProvider zoneSetItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.ZoneSet}. + * + * @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. + * + * @generated + */ + protected IsSoundingItemProvider isSoundingItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.IsSounding}. + * + * @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. + * + * @generated + */ + protected IsOutputtedItemProvider isOutputtedItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.IsOutputted}. + * + * @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. + * + * @generated + */ + protected IsMutedItemProvider isMutedItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.IsMuted}. + * + * @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. + * + * @generated + */ + protected IsAttenuatedItemProvider isAttenuatedItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.IsAttenuated}. + * + * @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. + * + * + * @generated + */ + protected OutputtingSoundItemProvider outputtingSoundItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.OutputtingSound}. + * + * @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. + * + * + * @generated + */ + protected AllInstanceOfZoneItemProvider allInstanceOfZoneItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.AllInstanceOfZone}. + * + * @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. + * @generated + */ + protected AllInstanceOfSoundContentItemProvider allInstanceOfSoundContentItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.AllInstanceOfSoundContent}. + * + * @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. + * + * @generated + */ + protected IsOutputtedOnItemProvider isOutputtedOnItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.IsOutputtedOn}. + * + * @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. + * + * + * @generated + */ + protected IsChangedOutputItemProvider isChangedOutputItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.IsChangedOutput}. + * + * @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. + * + * + * @generated + */ + protected IsTranslatedSoundToItemProvider isTranslatedSoundToItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.IsTranslatedSoundTo}. + * + * @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. + * + * + * @generated + */ + protected MuteLowerPriorityItemProvider muteLowerPriorityItemProvider; + + /** + * This creates an adapter for a {@link rba.sound.MuteLowerPriority}. + * + * @generated + */ + @Override + public Adapter createMuteLowerPriorityAdapter() { + if (muteLowerPriorityItemProvider == null) { + muteLowerPriorityItemProvider = new MuteLowerPriorityItemProvider(this); + } + + return muteLowerPriorityItemProvider; + } + + /** + * This returns the root adapter factory that contains this factory. + * + * @generated + */ + public ComposeableAdapterFactory getRootAdapterFactory() { + return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory(); + } + + /** + * This sets the composed adapter factory that contains this factory. + * + * @generated + */ + public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) { + this.parentAdapterFactory = parentAdapterFactory; + } + + /** + * + * @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. + * @generated + */ + @Override + public Adapter adapt(Notifier notifier, Object type) { + return super.adapt(notifier, this); + } + + /** + * + * @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. + * + * @generated + */ + public void addListener(INotifyChangedListener notifyChangedListener) { + changeNotifier.addListener(notifyChangedListener); + } + + /** + * This removes a listener. + * + * @generated + */ + public void removeListener(INotifyChangedListener notifyChangedListener) { + changeNotifier.removeListener(notifyChangedListener); + } + + /** + * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. + * @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. + * + * @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. + * + * @generated + */ +public final class RbaSoundEditPlugin extends EMFPlugin { + /** + * Keep track of the singleton. + * + * @generated + */ + public static final RbaSoundEditPlugin INSTANCE = new RbaSoundEditPlugin(); + + /** + * Keep track of the singleton. + * + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * + * @generated + */ + public RbaSoundEditPlugin() { + super(new ResourceLocator[] { RbaCoreEditPlugin.INSTANCE, }); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * + * @return the singleton instance. + * @generated + */ + @Override + public ResourceLocator getPluginResourceLocator() { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() { + return plugin; + } + + /** + * The actual implementation of the Eclipse Plugin. + * + * @generated + */ + public static class Implementation extends EclipsePlugin { + /** + * Creates an instance. + * + * @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. + * + * + * @generated + */ +public class SoundContentItemProvider extends ContentItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public SoundContentItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns SoundContent.gif. + * + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SoundContent")); + } + + /** + * + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * + * @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}. + * + * + * @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. + * + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * + * @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. + * + * @generated + */ +public class SoundContentOperatorItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SoundContentOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * @generated + */ +public class SoundContentSetItemProvider extends ContentSetItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SoundContentSetItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns SoundContentSet.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SoundContentSet")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * @generated + */ +public class SoundContentStateItemProvider extends ContentStateItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SoundContentStateItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns SoundContentState.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SoundContentState")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * + * @generated + */ +public class ZoneItemProvider extends AllocatableItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ZoneItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBASoundPackage.Literals.ZONE__ATTENUATE); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Zone")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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}. + * + * @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. + * + * @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. + * + * @generated + */ +public class ZoneOperatorItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ZoneOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * + * @generated + */ +public class ZoneSetItemProvider extends AllocatableSetItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ZoneSetItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ZoneSet.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ZoneSet")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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 @@ + + + + + + + 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 @@ + + + rba.model.sound + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.sirius.nature.modelingproject + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + org.eclipse.xtext.ui.shared.xtextNature + + 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 @@ + + + + rbasound.ecore + rbasound.genmodel + platform:/resource/rba.core/model/rbacore.ecore + http://www.eclipse.org/emf/2002/Ecore + platform:/resource/rba.core/model/rbacore.genmodel + platform:/resource/rba.model.core/model/rbacore.ecore + platform:/resource/rba.model.core/model/rbacore.genmodel + + + + + + + + + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + + italic + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + + italic + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + + + 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 @@ + + + +
+ + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + 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 @@ + + + rbasound.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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; + +/** + * + * A representation of the model object 'All Instance Of Sound Content'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getAllInstanceOfSoundContent() + * @model + * @generated + */ +public interface AllInstanceOfSoundContent extends SetExpression { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"ALL_SOUNDCONTENTS\";'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'All Instance Of Zone'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getAllInstanceOfZone() + * @model + * @generated + */ +public interface AllInstanceOfZone extends SetExpression { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"ALL_ZONES\";'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Attenuated'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getIsAttenuated() + * @model + * @generated + */ +public interface IsAttenuated extends ZoneOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isAttenauted()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Changed Output'. + * + * + * + * @see rba.sound.RBASoundPackage#getIsChangedOutput() + * @model + * @generated + */ +public interface IsChangedOutput extends ZoneOperator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isChangedOutput()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @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; + +/** + * + * A representation of the model object 'Is Muted'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getIsMuted() + * @model + * @generated + */ +public interface IsMuted extends ZoneOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isMuted()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Outputted'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getIsOutputted() + * @model + * @generated + */ +public interface IsOutputted extends ZoneOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isOutputted()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Outputted On'. + * + * + * + * @see rba.sound.RBASoundPackage#getIsOutputtedOn() + * @model + * @generated + */ +public interface IsOutputtedOn extends SoundContentOperator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isOutputtedOn\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Is Sounding'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getIsSounding() + * @model + * @generated + */ +public interface IsSounding extends SoundContentOperator { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Translated Sound To'. + * + * + * + * @see rba.sound.RBASoundPackage#getIsTranslatedSoundTo() + * @model + * @generated + */ +public interface IsTranslatedSoundTo extends ZoneOperator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isTranslatedSoundTo\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Mute Lower Priority'. + * + * + * + * @see rba.sound.RBASoundPackage#getMuteLowerPriority() + * @model + * @generated + */ +public interface MuteLowerPriority extends Operator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"MuteLowerPriority\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\",\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Outputting Sound'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getOutputtingSound() + * @model + * @generated + */ +public interface OutputtingSound extends ZoneOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".outputtingSound()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see rba.sound.RBASoundPackage + * @generated + */ +public interface RBASoundFactory extends EFactory { + /** + * The singleton instance of the factory. + * + * + * @generated + */ + RBASoundFactory eINSTANCE = rba.sound.impl.RBASoundFactoryImpl.init(); + + /** + * Returns a new object of class 'Sound Content'. + * + * + * @return a new object of class 'Sound Content'. + * @generated + */ + SoundContent createSoundContent(); + + /** + * Returns a new object of class 'Sound Content Set'. + * + * + * @return a new object of class 'Sound Content Set'. + * @generated + */ + SoundContentSet createSoundContentSet(); + + /** + * Returns a new object of class 'Sound Content State'. + * + * + * @return a new object of class 'Sound Content State'. + * @generated + */ + SoundContentState createSoundContentState(); + + /** + * Returns a new object of class 'Zone'. + * + * + * @return a new object of class 'Zone'. + * @generated + */ + Zone createZone(); + + /** + * Returns a new object of class 'Zone Set'. + * + * + * @return a new object of class 'Zone Set'. + * @generated + */ + ZoneSet createZoneSet(); + + /** + * Returns a new object of class 'Is Sounding'. + * + * + * @return a new object of class 'Is Sounding'. + * @generated + */ + IsSounding createIsSounding(); + + /** + * Returns a new object of class 'Is Outputted'. + * + * + * @return a new object of class 'Is Outputted'. + * @generated + */ + IsOutputted createIsOutputted(); + + /** + * Returns a new object of class 'Is Muted'. + * + * + * @return a new object of class 'Is Muted'. + * @generated + */ + IsMuted createIsMuted(); + + /** + * Returns a new object of class 'Is Attenuated'. + * + * + * @return a new object of class 'Is Attenuated'. + * @generated + */ + IsAttenuated createIsAttenuated(); + + /** + * Returns a new object of class 'Outputting Sound'. + * + * + * @return a new object of class 'Outputting Sound'. + * @generated + */ + OutputtingSound createOutputtingSound(); + + /** + * Returns a new object of class 'All Instance Of Zone'. + * + * + * @return a new object of class 'All Instance Of Zone'. + * @generated + */ + AllInstanceOfZone createAllInstanceOfZone(); + + /** + * Returns a new object of class 'All Instance Of Sound Content'. + * + * + * @return a new object of class 'All Instance Of Sound Content'. + * @generated + */ + AllInstanceOfSoundContent createAllInstanceOfSoundContent(); + + /** + * Returns a new object of class 'Is Outputted On'. + * + * + * @return a new object of class 'Is Outputted On'. + * @generated + */ + IsOutputtedOn createIsOutputtedOn(); + + /** + * Returns a new object of class 'Is Changed Output'. + * + * + * @return a new object of class 'Is Changed Output'. + * @generated + */ + IsChangedOutput createIsChangedOutput(); + + /** + * Returns a new object of class 'Is Translated Sound To'. + * + * + * @return a new object of class 'Is Translated Sound To'. + * @generated + */ + IsTranslatedSoundTo createIsTranslatedSoundTo(); + + /** + * Returns a new object of class 'Mute Lower Priority'. + * + * + * @return a new object of class 'Mute Lower Priority'. + * @generated + */ + MuteLowerPriority createMuteLowerPriority(); + + /** + * Returns the package supported by this factory. + * + * + * @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; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @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. + * + * + * @generated + */ + String eNAME = "sound"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.denso.com/ict/rba/sound"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "RbaSound"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + RBASoundPackage eINSTANCE = rba.sound.impl.RBASoundPackageImpl.init(); + + /** + * The meta object id for the '{@link rba.sound.impl.SoundContentImpl Sound Content}' class. + * + * + * @see rba.sound.impl.SoundContentImpl + * @see rba.sound.impl.RBASoundPackageImpl#getSoundContent() + * @generated + */ + int SOUND_CONTENT = 0; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT__DESCRIPTION = RBACorePackage.CONTENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT__NAME = RBACorePackage.CONTENT__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT__TAGS = RBACorePackage.CONTENT__TAGS; + + /** + * The feature id for the 'Content Group' reference list. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT__CONTENT_GROUP = RBACorePackage.CONTENT__CONTENT_GROUP; + + /** + * The feature id for the 'Allocatable' reference list. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT__ALLOCATABLE = RBACorePackage.CONTENT__ALLOCATABLE; + + /** + * The feature id for the 'Loser Type' attribute. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT__LOSER_TYPE = RBACorePackage.CONTENT__LOSER_TYPE; + + /** + * The feature id for the 'States' containment reference list. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT__STATES = RBACorePackage.CONTENT__STATES; + + /** + * The number of structural features of the 'Sound Content' class. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_FEATURE_COUNT = RBACorePackage.CONTENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Allocatable List' operation. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT___GET_ALLOCATABLE_LIST = RBACorePackage.CONTENT___GET_ALLOCATABLE_LIST; + + /** + * The operation id for the 'Collect Leaf Contents' operation. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT___COLLECT_LEAF_CONTENTS = RBACorePackage.CONTENT___COLLECT_LEAF_CONTENTS; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Sound Content' class. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_OPERATION_COUNT = RBACorePackage.CONTENT_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.sound.impl.SoundContentSetImpl Sound Content Set}' class. + * + * + * @see rba.sound.impl.SoundContentSetImpl + * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentSet() + * @generated + */ + int SOUND_CONTENT_SET = 1; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_SET__DESCRIPTION = RBACorePackage.CONTENT_SET__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_SET__NAME = RBACorePackage.CONTENT_SET__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_SET__TAGS = RBACorePackage.CONTENT_SET__TAGS; + + /** + * The feature id for the 'Content Group' reference list. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_SET__CONTENT_GROUP = RBACorePackage.CONTENT_SET__CONTENT_GROUP; + + /** + * The feature id for the 'Allocatable' reference list. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_SET__ALLOCATABLE = RBACorePackage.CONTENT_SET__ALLOCATABLE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_SET__TARGET = RBACorePackage.CONTENT_SET__TARGET; + + /** + * The number of structural features of the 'Sound Content Set' class. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_SET_FEATURE_COUNT = RBACorePackage.CONTENT_SET_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Allocatable List' operation. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_SET___GET_ALLOCATABLE_LIST = RBACorePackage.CONTENT_SET___GET_ALLOCATABLE_LIST; + + /** + * The operation id for the 'Collect Leaf Contents' operation. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_SET___COLLECT_LEAF_CONTENTS = RBACorePackage.CONTENT_SET___COLLECT_LEAF_CONTENTS; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_SET___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_SET_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Sound Content Set' class. + * + * + * @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 Sound Content State}' class. + * + * + * @see rba.sound.impl.SoundContentStateImpl + * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentState() + * @generated + */ + int SOUND_CONTENT_STATE = 2; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_STATE__DESCRIPTION = RBACorePackage.CONTENT_STATE__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_STATE__NAME = RBACorePackage.CONTENT_STATE__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_STATE__TAGS = RBACorePackage.CONTENT_STATE__TAGS; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_STATE__VALUE = RBACorePackage.CONTENT_STATE__VALUE; + + /** + * The feature id for the 'Owner' container reference. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_STATE__OWNER = RBACorePackage.CONTENT_STATE__OWNER; + + /** + * The number of structural features of the 'Sound Content State' class. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_STATE_FEATURE_COUNT = RBACorePackage.CONTENT_STATE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_STATE___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_STATE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Sound Content State' class. + * + * + * @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 Zone}' class. + * + * + * @see rba.sound.impl.ZoneImpl + * @see rba.sound.impl.RBASoundPackageImpl#getZone() + * @generated + */ + int ZONE = 3; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int ZONE__DESCRIPTION = RBACorePackage.ALLOCATABLE__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ZONE__NAME = RBACorePackage.ALLOCATABLE__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int ZONE__TAGS = RBACorePackage.ALLOCATABLE__TAGS; + + /** + * The feature id for the 'Contents' reference list. + * + * + * @generated + * @ordered + */ + int ZONE__CONTENTS = RBACorePackage.ALLOCATABLE__CONTENTS; + + /** + * The feature id for the 'Allocatable Group' reference list. + * + * + * @generated + * @ordered + */ + int ZONE__ALLOCATABLE_GROUP = RBACorePackage.ALLOCATABLE__ALLOCATABLE_GROUP; + + /** + * The feature id for the 'Arbitration Policy' attribute. + * + * + * @generated + * @ordered + */ + int ZONE__ARBITRATION_POLICY = RBACorePackage.ALLOCATABLE__ARBITRATION_POLICY; + + /** + * The feature id for the 'Visibility' containment reference. + * + * + * @generated + * @ordered + */ + int ZONE__VISIBILITY = RBACorePackage.ALLOCATABLE__VISIBILITY; + + /** + * The feature id for the 'Attenuate' containment reference. + * + * + * @generated + * @ordered + */ + int ZONE__ATTENUATE = RBACorePackage.ALLOCATABLE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Zone' class. + * + * + * @generated + * @ordered + */ + int ZONE_FEATURE_COUNT = RBACorePackage.ALLOCATABLE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Contents List' operation. + * + * + * @generated + * @ordered + */ + int ZONE___GET_CONTENTS_LIST = RBACorePackage.ALLOCATABLE___GET_CONTENTS_LIST; + + /** + * The operation id for the 'Collect Leaf Allocatable' operation. + * + * + * @generated + * @ordered + */ + int ZONE___COLLECT_LEAF_ALLOCATABLE = RBACorePackage.ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int ZONE___GET_EXPRESSION_TYPE = RBACorePackage.ALLOCATABLE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Zone' class. + * + * + * @generated + * @ordered + */ + int ZONE_OPERATION_COUNT = RBACorePackage.ALLOCATABLE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.sound.impl.ZoneSetImpl Zone Set}' class. + * + * + * @see rba.sound.impl.ZoneSetImpl + * @see rba.sound.impl.RBASoundPackageImpl#getZoneSet() + * @generated + */ + int ZONE_SET = 4; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int ZONE_SET__DESCRIPTION = RBACorePackage.ALLOCATABLE_SET__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ZONE_SET__NAME = RBACorePackage.ALLOCATABLE_SET__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int ZONE_SET__TAGS = RBACorePackage.ALLOCATABLE_SET__TAGS; + + /** + * The feature id for the 'Contents' reference list. + * + * + * @generated + * @ordered + */ + int ZONE_SET__CONTENTS = RBACorePackage.ALLOCATABLE_SET__CONTENTS; + + /** + * The feature id for the 'Allocatable Group' reference list. + * + * + * @generated + * @ordered + */ + int ZONE_SET__ALLOCATABLE_GROUP = RBACorePackage.ALLOCATABLE_SET__ALLOCATABLE_GROUP; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int ZONE_SET__TARGET = RBACorePackage.ALLOCATABLE_SET__TARGET; + + /** + * The number of structural features of the 'Zone Set' class. + * + * + * @generated + * @ordered + */ + int ZONE_SET_FEATURE_COUNT = RBACorePackage.ALLOCATABLE_SET_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Contents List' operation. + * + * + * @generated + * @ordered + */ + int ZONE_SET___GET_CONTENTS_LIST = RBACorePackage.ALLOCATABLE_SET___GET_CONTENTS_LIST; + + /** + * The operation id for the 'Collect Leaf Allocatable' operation. + * + * + * @generated + * @ordered + */ + int ZONE_SET___COLLECT_LEAF_ALLOCATABLE = RBACorePackage.ALLOCATABLE_SET___COLLECT_LEAF_ALLOCATABLE; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int ZONE_SET___GET_EXPRESSION_TYPE = RBACorePackage.ALLOCATABLE_SET_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Zone Set' class. + * + * + * @generated + * @ordered + */ + int ZONE_SET_OPERATION_COUNT = RBACorePackage.ALLOCATABLE_SET_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.sound.impl.SoundContentOperatorImpl Sound Content Operator}' class. + * + * + * @see rba.sound.impl.SoundContentOperatorImpl + * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentOperator() + * @generated + */ + int SOUND_CONTENT_OPERATOR = 5; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_OPERATOR__TYPE = RBACorePackage.CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_OPERATOR__EXPRESSION = RBACorePackage.CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_OPERATOR__LET_STATEMENTS = RBACorePackage.CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_OPERATOR__OPERAND = RBACorePackage.CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Sound Content Operator' class. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_OPERATOR_FEATURE_COUNT = RBACorePackage.CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_OPERATOR___GET_SYMBOL = RBACorePackage.CONTENT_OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_OPERATOR___GET_EXPRESSION_TEXT = RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int SOUND_CONTENT_OPERATOR___GET_UNDERLYING_TYPE = RBACorePackage.CONTENT_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Sound Content Operator' class. + * + * + * @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 Is Sounding}' class. + * + * + * @see rba.sound.impl.IsSoundingImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsSounding() + * @generated + */ + int IS_SOUNDING = 6; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_SOUNDING__TYPE = SOUND_CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_SOUNDING__EXPRESSION = SOUND_CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_SOUNDING__LET_STATEMENTS = SOUND_CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_SOUNDING__OPERAND = SOUND_CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Sounding' class. + * + * + * @generated + * @ordered + */ + int IS_SOUNDING_FEATURE_COUNT = SOUND_CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_SOUNDING___GET_EXPRESSION_TEXT = SOUND_CONTENT_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_SOUNDING___GET_UNDERLYING_TYPE = SOUND_CONTENT_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_SOUNDING___GET_SYMBOL = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Is Sounding' class. + * + * + * @generated + * @ordered + */ + int IS_SOUNDING_OPERATION_COUNT = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.sound.impl.ZoneOperatorImpl Zone Operator}' class. + * + * + * @see rba.sound.impl.ZoneOperatorImpl + * @see rba.sound.impl.RBASoundPackageImpl#getZoneOperator() + * @generated + */ + int ZONE_OPERATOR = 7; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ZONE_OPERATOR__TYPE = RBACorePackage.OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ZONE_OPERATOR__EXPRESSION = RBACorePackage.OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ZONE_OPERATOR__LET_STATEMENTS = RBACorePackage.OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int ZONE_OPERATOR__OPERAND = RBACorePackage.OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Zone Operator' class. + * + * + * @generated + * @ordered + */ + int ZONE_OPERATOR_FEATURE_COUNT = RBACorePackage.OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ZONE_OPERATOR___GET_UNDERLYING_TYPE = RBACorePackage.OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int ZONE_OPERATOR___GET_SYMBOL = RBACorePackage.OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ZONE_OPERATOR___GET_EXPRESSION_TEXT = RBACorePackage.OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Zone Operator' class. + * + * + * @generated + * @ordered + */ + int ZONE_OPERATOR_OPERATION_COUNT = RBACorePackage.OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.sound.impl.IsOutputtedImpl Is Outputted}' class. + * + * + * @see rba.sound.impl.IsOutputtedImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsOutputted() + * @generated + */ + int IS_OUTPUTTED = 8; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED__TYPE = ZONE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED__EXPRESSION = ZONE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED__OPERAND = ZONE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Outputted' class. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED___GET_EXPRESSION_TEXT = ZONE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Is Outputted' class. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_OPERATION_COUNT = ZONE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.sound.impl.IsMutedImpl Is Muted}' class. + * + * + * @see rba.sound.impl.IsMutedImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsMuted() + * @generated + */ + int IS_MUTED = 9; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_MUTED__TYPE = ZONE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_MUTED__EXPRESSION = ZONE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_MUTED__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_MUTED__OPERAND = ZONE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Muted' class. + * + * + * @generated + * @ordered + */ + int IS_MUTED_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_MUTED___GET_EXPRESSION_TEXT = ZONE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_MUTED___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_MUTED___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Is Muted' class. + * + * + * @generated + * @ordered + */ + int IS_MUTED_OPERATION_COUNT = ZONE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.sound.impl.IsAttenuatedImpl Is Attenuated}' class. + * + * + * @see rba.sound.impl.IsAttenuatedImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsAttenuated() + * @generated + */ + int IS_ATTENUATED = 10; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_ATTENUATED__TYPE = ZONE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_ATTENUATED__EXPRESSION = ZONE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_ATTENUATED__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_ATTENUATED__OPERAND = ZONE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Attenuated' class. + * + * + * @generated + * @ordered + */ + int IS_ATTENUATED_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_ATTENUATED___GET_EXPRESSION_TEXT = ZONE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_ATTENUATED___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_ATTENUATED___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Is Attenuated' class. + * + * + * @generated + * @ordered + */ + int IS_ATTENUATED_OPERATION_COUNT = ZONE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.sound.impl.OutputtingSoundImpl Outputting Sound}' class. + * + * + * @see rba.sound.impl.OutputtingSoundImpl + * @see rba.sound.impl.RBASoundPackageImpl#getOutputtingSound() + * @generated + */ + int OUTPUTTING_SOUND = 11; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int OUTPUTTING_SOUND__TYPE = ZONE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int OUTPUTTING_SOUND__EXPRESSION = ZONE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int OUTPUTTING_SOUND__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int OUTPUTTING_SOUND__OPERAND = ZONE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Outputting Sound' class. + * + * + * @generated + * @ordered + */ + int OUTPUTTING_SOUND_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int OUTPUTTING_SOUND___GET_EXPRESSION_TEXT = ZONE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int OUTPUTTING_SOUND___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int OUTPUTTING_SOUND___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Outputting Sound' class. + * + * + * @generated + * @ordered + */ + int OUTPUTTING_SOUND_OPERATION_COUNT = ZONE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.sound.impl.AllInstanceOfZoneImpl All Instance Of Zone}' class. + * + * + * @see rba.sound.impl.AllInstanceOfZoneImpl + * @see rba.sound.impl.RBASoundPackageImpl#getAllInstanceOfZone() + * @generated + */ + int ALL_INSTANCE_OF_ZONE = 12; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_ZONE__TYPE = RBACorePackage.SET_EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_ZONE__EXPRESSION = RBACorePackage.SET_EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_ZONE__LET_STATEMENTS = RBACorePackage.SET_EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'All Instance Of Zone' class. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_ZONE_FEATURE_COUNT = RBACorePackage.SET_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_ZONE___GET_EXPRESSION_TEXT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_ZONE___GET_UNDERLYING_TYPE = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'All Instance Of Zone' class. + * + * + * @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 All Instance Of Sound Content}' class. + * + * + * @see rba.sound.impl.AllInstanceOfSoundContentImpl + * @see rba.sound.impl.RBASoundPackageImpl#getAllInstanceOfSoundContent() + * @generated + */ + int ALL_INSTANCE_OF_SOUND_CONTENT = 13; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_SOUND_CONTENT__TYPE = RBACorePackage.SET_EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_SOUND_CONTENT__EXPRESSION = RBACorePackage.SET_EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_SOUND_CONTENT__LET_STATEMENTS = RBACorePackage.SET_EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'All Instance Of Sound Content' class. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_SOUND_CONTENT_FEATURE_COUNT = RBACorePackage.SET_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_SOUND_CONTENT___GET_EXPRESSION_TEXT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_SOUND_CONTENT___GET_UNDERLYING_TYPE = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'All Instance Of Sound Content' class. + * + * + * @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 Is Outputted On}' class. + * + * + * @see rba.sound.impl.IsOutputtedOnImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsOutputtedOn() + * @generated + */ + int IS_OUTPUTTED_ON = 14; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_ON__TYPE = SOUND_CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_ON__EXPRESSION = SOUND_CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_ON__LET_STATEMENTS = SOUND_CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_ON__OPERAND = SOUND_CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Outputted On' class. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_ON_FEATURE_COUNT = SOUND_CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_ON___GET_EXPANDED = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_ON___CAN_EXPAND = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_ON___GET_SYMBOL = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_ON___GET_UNDERLYING_TYPE = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_OUTPUTTED_ON___GET_EXPRESSION_TEXT = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 5; + + /** + * The number of operations of the 'Is Outputted On' class. + * + * + * @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 Is Changed Output}' class. + * + * + * @see rba.sound.impl.IsChangedOutputImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsChangedOutput() + * @generated + */ + int IS_CHANGED_OUTPUT = 15; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OUTPUT__TYPE = ZONE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OUTPUT__EXPRESSION = ZONE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OUTPUT__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OUTPUT__OPERAND = ZONE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Changed Output' class. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OUTPUT_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OUTPUT___GET_EXPRESSION_TEXT = ZONE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OUTPUT___GET_EXPANDED = ZONE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OUTPUT___CAN_EXPAND = ZONE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OUTPUT___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OUTPUT___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 4; + + /** + * The number of operations of the 'Is Changed Output' class. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_OUTPUT_OPERATION_COUNT = ZONE_OPERATOR_OPERATION_COUNT + 5; + + /** + * The meta object id for the '{@link rba.sound.impl.IsTranslatedSoundToImpl Is Translated Sound To}' class. + * + * + * @see rba.sound.impl.IsTranslatedSoundToImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsTranslatedSoundTo() + * @generated + */ + int IS_TRANSLATED_SOUND_TO = 16; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_SOUND_TO__TYPE = ZONE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_SOUND_TO__EXPRESSION = ZONE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_SOUND_TO__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_SOUND_TO__OPERAND = ZONE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Translated Sound To' class. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_SOUND_TO_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_SOUND_TO___GET_EXPANDED = ZONE_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_SOUND_TO___CAN_EXPAND = ZONE_OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_SOUND_TO___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_SOUND_TO___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_SOUND_TO___GET_EXPRESSION_TEXT = ZONE_OPERATOR_OPERATION_COUNT + 5; + + /** + * The number of operations of the 'Is Translated Sound To' class. + * + * + * @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 Mute Lower Priority}' class. + * + * + * @see rba.sound.impl.MuteLowerPriorityImpl + * @see rba.sound.impl.RBASoundPackageImpl#getMuteLowerPriority() + * @generated + */ + int MUTE_LOWER_PRIORITY = 17; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int MUTE_LOWER_PRIORITY__TYPE = RBACorePackage.OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int MUTE_LOWER_PRIORITY__EXPRESSION = RBACorePackage.OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int MUTE_LOWER_PRIORITY__LET_STATEMENTS = RBACorePackage.OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int MUTE_LOWER_PRIORITY__OPERAND = RBACorePackage.OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Mute Lower Priority' class. + * + * + * @generated + * @ordered + */ + int MUTE_LOWER_PRIORITY_FEATURE_COUNT = RBACorePackage.OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int MUTE_LOWER_PRIORITY___GET_EXPANDED = RBACorePackage.OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int MUTE_LOWER_PRIORITY___CAN_EXPAND = RBACorePackage.OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int MUTE_LOWER_PRIORITY___GET_SYMBOL = RBACorePackage.OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int MUTE_LOWER_PRIORITY___GET_UNDERLYING_TYPE = RBACorePackage.OPERATOR_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int MUTE_LOWER_PRIORITY___GET_EXPRESSION_TEXT = RBACorePackage.OPERATOR_OPERATION_COUNT + 5; + + /** + * The number of operations of the 'Mute Lower Priority' class. + * + * + * @generated + * @ordered + */ + int MUTE_LOWER_PRIORITY_OPERATION_COUNT = RBACorePackage.OPERATOR_OPERATION_COUNT + 6; + + /** + * Returns the meta object for class '{@link rba.sound.SoundContent Sound Content}'. + * + * + * @return the meta object for class 'Sound Content'. + * @see rba.sound.SoundContent + * @generated + */ + EClass getSoundContent(); + + /** + * Returns the meta object for the '{@link rba.sound.SoundContent#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.sound.SoundContent#getExpressionType() + * @generated + */ + EOperation getSoundContent__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.sound.SoundContentSet Sound Content Set}'. + * + * + * @return the meta object for class 'Sound Content Set'. + * @see rba.sound.SoundContentSet + * @generated + */ + EClass getSoundContentSet(); + + /** + * Returns the meta object for the '{@link rba.sound.SoundContentSet#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.sound.SoundContentSet#getExpressionType() + * @generated + */ + EOperation getSoundContentSet__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.sound.SoundContentState Sound Content State}'. + * + * + * @return the meta object for class 'Sound Content State'. + * @see rba.sound.SoundContentState + * @generated + */ + EClass getSoundContentState(); + + /** + * Returns the meta object for the '{@link rba.sound.SoundContentState#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.sound.SoundContentState#getExpressionType() + * @generated + */ + EOperation getSoundContentState__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.sound.Zone Zone}'. + * + * + * @return the meta object for class 'Zone'. + * @see rba.sound.Zone + * @generated + */ + EClass getZone(); + + /** + * Returns the meta object for the containment reference '{@link rba.sound.Zone#getAttenuate Attenuate}'. + * + * + * @return the meta object for the containment reference 'Attenuate'. + * @see rba.sound.Zone#getAttenuate() + * @see #getZone() + * @generated + */ + EReference getZone_Attenuate(); + + /** + * Returns the meta object for the '{@link rba.sound.Zone#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.sound.Zone#getExpressionType() + * @generated + */ + EOperation getZone__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.sound.ZoneSet Zone Set}'. + * + * + * @return the meta object for class 'Zone Set'. + * @see rba.sound.ZoneSet + * @generated + */ + EClass getZoneSet(); + + /** + * Returns the meta object for the '{@link rba.sound.ZoneSet#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.sound.ZoneSet#getExpressionType() + * @generated + */ + EOperation getZoneSet__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.sound.SoundContentOperator Sound Content Operator}'. + * + * + * @return the meta object for class 'Sound Content Operator'. + * @see rba.sound.SoundContentOperator + * @generated + */ + EClass getSoundContentOperator(); + + /** + * Returns the meta object for the '{@link rba.sound.SoundContentOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.sound.SoundContentOperator#getUnderlyingType() + * @generated + */ + EOperation getSoundContentOperator__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.sound.IsSounding Is Sounding}'. + * + * + * @return the meta object for class 'Is Sounding'. + * @see rba.sound.IsSounding + * @generated + */ + EClass getIsSounding(); + + /** + * Returns the meta object for the '{@link rba.sound.IsSounding#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.sound.IsSounding#getSymbol() + * @generated + */ + EOperation getIsSounding__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.sound.ZoneOperator Zone Operator}'. + * + * + * @return the meta object for class 'Zone Operator'. + * @see rba.sound.ZoneOperator + * @generated + */ + EClass getZoneOperator(); + + /** + * Returns the meta object for the '{@link rba.sound.ZoneOperator#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.sound.ZoneOperator#getExpressionText() + * @generated + */ + EOperation getZoneOperator__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.sound.IsOutputted Is Outputted}'. + * + * + * @return the meta object for class 'Is Outputted'. + * @see rba.sound.IsOutputted + * @generated + */ + EClass getIsOutputted(); + + /** + * Returns the meta object for the '{@link rba.sound.IsOutputted#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.sound.IsOutputted#getSymbol() + * @generated + */ + EOperation getIsOutputted__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.sound.IsOutputted#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.sound.IsOutputted#getUnderlyingType() + * @generated + */ + EOperation getIsOutputted__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.sound.IsMuted Is Muted}'. + * + * + * @return the meta object for class 'Is Muted'. + * @see rba.sound.IsMuted + * @generated + */ + EClass getIsMuted(); + + /** + * Returns the meta object for the '{@link rba.sound.IsMuted#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.sound.IsMuted#getSymbol() + * @generated + */ + EOperation getIsMuted__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.sound.IsMuted#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.sound.IsMuted#getUnderlyingType() + * @generated + */ + EOperation getIsMuted__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.sound.IsAttenuated Is Attenuated}'. + * + * + * @return the meta object for class 'Is Attenuated'. + * @see rba.sound.IsAttenuated + * @generated + */ + EClass getIsAttenuated(); + + /** + * Returns the meta object for the '{@link rba.sound.IsAttenuated#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.sound.IsAttenuated#getSymbol() + * @generated + */ + EOperation getIsAttenuated__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.sound.IsAttenuated#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.sound.IsAttenuated#getUnderlyingType() + * @generated + */ + EOperation getIsAttenuated__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.sound.OutputtingSound Outputting Sound}'. + * + * + * @return the meta object for class 'Outputting Sound'. + * @see rba.sound.OutputtingSound + * @generated + */ + EClass getOutputtingSound(); + + /** + * Returns the meta object for the '{@link rba.sound.OutputtingSound#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.sound.OutputtingSound#getSymbol() + * @generated + */ + EOperation getOutputtingSound__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.sound.OutputtingSound#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.sound.OutputtingSound#getUnderlyingType() + * @generated + */ + EOperation getOutputtingSound__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.sound.AllInstanceOfZone All Instance Of Zone}'. + * + * + * @return the meta object for class 'All Instance Of Zone'. + * @see rba.sound.AllInstanceOfZone + * @generated + */ + EClass getAllInstanceOfZone(); + + /** + * Returns the meta object for the '{@link rba.sound.AllInstanceOfZone#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.sound.AllInstanceOfZone#getExpressionText() + * @generated + */ + EOperation getAllInstanceOfZone__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.sound.AllInstanceOfZone#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.sound.AllInstanceOfZone#getUnderlyingType() + * @generated + */ + EOperation getAllInstanceOfZone__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.sound.AllInstanceOfSoundContent All Instance Of Sound Content}'. + * + * + * @return the meta object for class 'All Instance Of Sound Content'. + * @see rba.sound.AllInstanceOfSoundContent + * @generated + */ + EClass getAllInstanceOfSoundContent(); + + /** + * Returns the meta object for the '{@link rba.sound.AllInstanceOfSoundContent#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.sound.AllInstanceOfSoundContent#getExpressionText() + * @generated + */ + EOperation getAllInstanceOfSoundContent__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.sound.AllInstanceOfSoundContent#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.sound.AllInstanceOfSoundContent#getUnderlyingType() + * @generated + */ + EOperation getAllInstanceOfSoundContent__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.sound.IsOutputtedOn Is Outputted On}'. + * + * + * @return the meta object for class 'Is Outputted On'. + * @see rba.sound.IsOutputtedOn + * @generated + */ + EClass getIsOutputtedOn(); + + /** + * Returns the meta object for the '{@link rba.sound.IsOutputtedOn#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.sound.IsOutputtedOn#getSymbol() + * @generated + */ + EOperation getIsOutputtedOn__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.sound.IsOutputtedOn#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.sound.IsOutputtedOn#getUnderlyingType() + * @generated + */ + EOperation getIsOutputtedOn__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.sound.IsOutputtedOn#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.sound.IsOutputtedOn#getExpressionText() + * @generated + */ + EOperation getIsOutputtedOn__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.sound.IsChangedOutput Is Changed Output}'. + * + * + * @return the meta object for class 'Is Changed Output'. + * @see rba.sound.IsChangedOutput + * @generated + */ + EClass getIsChangedOutput(); + + /** + * Returns the meta object for the '{@link rba.sound.IsChangedOutput#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.sound.IsChangedOutput#getSymbol() + * @generated + */ + EOperation getIsChangedOutput__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.sound.IsChangedOutput#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.sound.IsChangedOutput#getUnderlyingType() + * @generated + */ + EOperation getIsChangedOutput__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.sound.IsTranslatedSoundTo Is Translated Sound To}'. + * + * + * @return the meta object for class 'Is Translated Sound To'. + * @see rba.sound.IsTranslatedSoundTo + * @generated + */ + EClass getIsTranslatedSoundTo(); + + /** + * Returns the meta object for the '{@link rba.sound.IsTranslatedSoundTo#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.sound.IsTranslatedSoundTo#getSymbol() + * @generated + */ + EOperation getIsTranslatedSoundTo__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.sound.IsTranslatedSoundTo#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.sound.IsTranslatedSoundTo#getUnderlyingType() + * @generated + */ + EOperation getIsTranslatedSoundTo__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.sound.IsTranslatedSoundTo#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.sound.IsTranslatedSoundTo#getExpressionText() + * @generated + */ + EOperation getIsTranslatedSoundTo__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.sound.MuteLowerPriority Mute Lower Priority}'. + * + * + * @return the meta object for class 'Mute Lower Priority'. + * @see rba.sound.MuteLowerPriority + * @generated + */ + EClass getMuteLowerPriority(); + + /** + * Returns the meta object for the '{@link rba.sound.MuteLowerPriority#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.sound.MuteLowerPriority#getSymbol() + * @generated + */ + EOperation getMuteLowerPriority__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.sound.MuteLowerPriority#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.sound.MuteLowerPriority#getUnderlyingType() + * @generated + */ + EOperation getMuteLowerPriority__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.sound.MuteLowerPriority#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.sound.MuteLowerPriority#getExpressionText() + * @generated + */ + EOperation getMuteLowerPriority__GetExpressionText(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + RBASoundFactory getRBASoundFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link rba.sound.impl.SoundContentImpl Sound Content}' class. + * + * + * @see rba.sound.impl.SoundContentImpl + * @see rba.sound.impl.RBASoundPackageImpl#getSoundContent() + * @generated + */ + EClass SOUND_CONTENT = eINSTANCE.getSoundContent(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation SOUND_CONTENT___GET_EXPRESSION_TYPE = eINSTANCE.getSoundContent__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.SoundContentSetImpl Sound Content Set}' class. + * + * + * @see rba.sound.impl.SoundContentSetImpl + * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentSet() + * @generated + */ + EClass SOUND_CONTENT_SET = eINSTANCE.getSoundContentSet(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation SOUND_CONTENT_SET___GET_EXPRESSION_TYPE = eINSTANCE.getSoundContentSet__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.SoundContentStateImpl Sound Content State}' class. + * + * + * @see rba.sound.impl.SoundContentStateImpl + * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentState() + * @generated + */ + EClass SOUND_CONTENT_STATE = eINSTANCE.getSoundContentState(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation SOUND_CONTENT_STATE___GET_EXPRESSION_TYPE = eINSTANCE.getSoundContentState__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.ZoneImpl Zone}' class. + * + * + * @see rba.sound.impl.ZoneImpl + * @see rba.sound.impl.RBASoundPackageImpl#getZone() + * @generated + */ + EClass ZONE = eINSTANCE.getZone(); + + /** + * The meta object literal for the 'Attenuate' containment reference feature. + * + * + * @generated + */ + EReference ZONE__ATTENUATE = eINSTANCE.getZone_Attenuate(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation ZONE___GET_EXPRESSION_TYPE = eINSTANCE.getZone__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.ZoneSetImpl Zone Set}' class. + * + * + * @see rba.sound.impl.ZoneSetImpl + * @see rba.sound.impl.RBASoundPackageImpl#getZoneSet() + * @generated + */ + EClass ZONE_SET = eINSTANCE.getZoneSet(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation ZONE_SET___GET_EXPRESSION_TYPE = eINSTANCE.getZoneSet__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.SoundContentOperatorImpl Sound Content Operator}' class. + * + * + * @see rba.sound.impl.SoundContentOperatorImpl + * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentOperator() + * @generated + */ + EClass SOUND_CONTENT_OPERATOR = eINSTANCE.getSoundContentOperator(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation SOUND_CONTENT_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE + .getSoundContentOperator__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.IsSoundingImpl Is Sounding}' class. + * + * + * @see rba.sound.impl.IsSoundingImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsSounding() + * @generated + */ + EClass IS_SOUNDING = eINSTANCE.getIsSounding(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_SOUNDING___GET_SYMBOL = eINSTANCE.getIsSounding__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.sound.impl.ZoneOperatorImpl Zone Operator}' class. + * + * + * @see rba.sound.impl.ZoneOperatorImpl + * @see rba.sound.impl.RBASoundPackageImpl#getZoneOperator() + * @generated + */ + EClass ZONE_OPERATOR = eINSTANCE.getZoneOperator(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation ZONE_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getZoneOperator__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.sound.impl.IsOutputtedImpl Is Outputted}' class. + * + * + * @see rba.sound.impl.IsOutputtedImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsOutputted() + * @generated + */ + EClass IS_OUTPUTTED = eINSTANCE.getIsOutputted(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_OUTPUTTED___GET_SYMBOL = eINSTANCE.getIsOutputted__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_OUTPUTTED___GET_UNDERLYING_TYPE = eINSTANCE.getIsOutputted__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.IsMutedImpl Is Muted}' class. + * + * + * @see rba.sound.impl.IsMutedImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsMuted() + * @generated + */ + EClass IS_MUTED = eINSTANCE.getIsMuted(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_MUTED___GET_SYMBOL = eINSTANCE.getIsMuted__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_MUTED___GET_UNDERLYING_TYPE = eINSTANCE.getIsMuted__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.IsAttenuatedImpl Is Attenuated}' class. + * + * + * @see rba.sound.impl.IsAttenuatedImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsAttenuated() + * @generated + */ + EClass IS_ATTENUATED = eINSTANCE.getIsAttenuated(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_ATTENUATED___GET_SYMBOL = eINSTANCE.getIsAttenuated__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_ATTENUATED___GET_UNDERLYING_TYPE = eINSTANCE.getIsAttenuated__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.OutputtingSoundImpl Outputting Sound}' class. + * + * + * @see rba.sound.impl.OutputtingSoundImpl + * @see rba.sound.impl.RBASoundPackageImpl#getOutputtingSound() + * @generated + */ + EClass OUTPUTTING_SOUND = eINSTANCE.getOutputtingSound(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation OUTPUTTING_SOUND___GET_SYMBOL = eINSTANCE.getOutputtingSound__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation OUTPUTTING_SOUND___GET_UNDERLYING_TYPE = eINSTANCE.getOutputtingSound__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.AllInstanceOfZoneImpl All Instance Of Zone}' class. + * + * + * @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 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation ALL_INSTANCE_OF_ZONE___GET_EXPRESSION_TEXT = eINSTANCE.getAllInstanceOfZone__GetExpressionText(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation ALL_INSTANCE_OF_ZONE___GET_UNDERLYING_TYPE = eINSTANCE.getAllInstanceOfZone__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.AllInstanceOfSoundContentImpl All Instance Of Sound Content}' class. + * + * + * @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 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation ALL_INSTANCE_OF_SOUND_CONTENT___GET_EXPRESSION_TEXT = eINSTANCE + .getAllInstanceOfSoundContent__GetExpressionText(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation ALL_INSTANCE_OF_SOUND_CONTENT___GET_UNDERLYING_TYPE = eINSTANCE + .getAllInstanceOfSoundContent__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.IsOutputtedOnImpl Is Outputted On}' class. + * + * + * @see rba.sound.impl.IsOutputtedOnImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsOutputtedOn() + * @generated + */ + EClass IS_OUTPUTTED_ON = eINSTANCE.getIsOutputtedOn(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_OUTPUTTED_ON___GET_SYMBOL = eINSTANCE.getIsOutputtedOn__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_OUTPUTTED_ON___GET_UNDERLYING_TYPE = eINSTANCE.getIsOutputtedOn__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation IS_OUTPUTTED_ON___GET_EXPRESSION_TEXT = eINSTANCE.getIsOutputtedOn__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.sound.impl.IsChangedOutputImpl Is Changed Output}' class. + * + * + * @see rba.sound.impl.IsChangedOutputImpl + * @see rba.sound.impl.RBASoundPackageImpl#getIsChangedOutput() + * @generated + */ + EClass IS_CHANGED_OUTPUT = eINSTANCE.getIsChangedOutput(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_CHANGED_OUTPUT___GET_SYMBOL = eINSTANCE.getIsChangedOutput__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_CHANGED_OUTPUT___GET_UNDERLYING_TYPE = eINSTANCE.getIsChangedOutput__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.sound.impl.IsTranslatedSoundToImpl Is Translated Sound To}' class. + * + * + * @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 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_TRANSLATED_SOUND_TO___GET_SYMBOL = eINSTANCE.getIsTranslatedSoundTo__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_TRANSLATED_SOUND_TO___GET_UNDERLYING_TYPE = eINSTANCE.getIsTranslatedSoundTo__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation IS_TRANSLATED_SOUND_TO___GET_EXPRESSION_TEXT = eINSTANCE.getIsTranslatedSoundTo__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.sound.impl.MuteLowerPriorityImpl Mute Lower Priority}' class. + * + * + * @see rba.sound.impl.MuteLowerPriorityImpl + * @see rba.sound.impl.RBASoundPackageImpl#getMuteLowerPriority() + * @generated + */ + EClass MUTE_LOWER_PRIORITY = eINSTANCE.getMuteLowerPriority(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation MUTE_LOWER_PRIORITY___GET_SYMBOL = eINSTANCE.getMuteLowerPriority__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation MUTE_LOWER_PRIORITY___GET_UNDERLYING_TYPE = eINSTANCE.getMuteLowerPriority__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @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; + +/** + * + * A representation of the model object 'Sound Content'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getSoundContent() + * @model + * @generated + */ +public interface SoundContent extends Content { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Sound Content Operator'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getSoundContentOperator() + * @model abstract="true" + * @generated + */ +public interface SoundContentOperator extends ContentOperator { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Sound Content Set'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getSoundContentSet() + * @model + * @generated + */ +public interface SoundContentSet extends ContentSet { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Sound Content State'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getSoundContentState() + * @model + * @generated + */ +public interface SoundContentState extends ContentState { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Zone'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.sound.Zone#getAttenuate Attenuate}
  • + *
+ * + * @see rba.sound.RBASoundPackage#getZone() + * @model + * @generated + */ +public interface Zone extends Allocatable { + /** + * Returns the value of the 'Attenuate' containment reference. + * + * + * + * + * + * @return the value of the 'Attenuate' 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 Attenuate}' containment reference. + * + * + * @param value the new value of the 'Attenuate' containment reference. + * @see #getAttenuate() + * @generated + */ + void setAttenuate(Expression value); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Zone Operator'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getZoneOperator() + * @model abstract="true" + * @generated + */ +public interface ZoneOperator extends Operator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Zone Set'. + * + * + * + * + * + * + * + * @see rba.sound.RBASoundPackage#getZoneSet() + * @model + * @generated + */ +public interface ZoneSet extends AllocatableSet { + /** + * + * + * + * @Override + * + * @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; + +/** + * An implementation of the model object 'All Instance Of Sound Content'. + * + * @generated + */ +public class AllInstanceOfSoundContentImpl extends SetExpressionImpl implements AllInstanceOfSoundContent { + /** + * + * @generated + */ + protected AllInstanceOfSoundContentImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.ALL_INSTANCE_OF_SOUND_CONTENT; + } + + /** + * + * @generated + */ + public String getExpressionText() { + return "ALL_SOUNDCONTENTS"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.SET_OF_SOUND; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'All Instance Of Zone'. + * + * @generated + */ +public class AllInstanceOfZoneImpl extends SetExpressionImpl implements AllInstanceOfZone { + /** + * + * @generated + */ + protected AllInstanceOfZoneImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.ALL_INSTANCE_OF_ZONE; + } + + /** + * + * @generated + */ + public String getExpressionText() { + return "ALL_ZONES"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.SET_OF_ZONE; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Attenuated'. + * + * @generated + */ +public class IsAttenuatedImpl extends ZoneOperatorImpl implements IsAttenuated { + /** + * + * @generated + */ + protected IsAttenuatedImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.IS_ATTENUATED; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isAttenauted()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Changed Output'. + * + * @generated + */ +public class IsChangedOutputImpl extends ZoneOperatorImpl implements IsChangedOutput { + /** + * + * @generated + */ + protected IsChangedOutputImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.IS_CHANGED_OUTPUT; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isChangedOutput()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Muted'. + * + * @generated + */ +public class IsMutedImpl extends ZoneOperatorImpl implements IsMuted { + /** + * + * @generated + */ + protected IsMutedImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.IS_MUTED; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isMuted()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Outputted'. + * + * @generated + */ +public class IsOutputtedImpl extends ZoneOperatorImpl implements IsOutputted { + /** + * + * @generated + */ + protected IsOutputtedImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.IS_OUTPUTTED; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isOutputted()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Outputted On'. + * + * @generated + */ +public class IsOutputtedOnImpl extends SoundContentOperatorImpl implements IsOutputtedOn { + /** + * + * @generated + */ + protected IsOutputtedOnImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.IS_OUTPUTTED_ON; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isOutputtedOn"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuilder expressionText = new StringBuilder(); + EList 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(); + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Sounding'. + * + * @generated + */ +public class IsSoundingImpl extends SoundContentOperatorImpl implements IsSounding { + /** + * + * @generated + */ + protected IsSoundingImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.IS_SOUNDING; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isSounding()"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Translated Sound To'. + * + * @generated + */ +public class IsTranslatedSoundToImpl extends ZoneOperatorImpl implements IsTranslatedSoundTo { + /** + * + * @generated + */ + protected IsTranslatedSoundToImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.IS_TRANSLATED_SOUND_TO; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isTranslatedSoundTo"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuilder expressionText = new StringBuilder(); + EList 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(); + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Mute Lower Priority'. + * + * @generated + */ +public class MuteLowerPriorityImpl extends OperatorImpl implements MuteLowerPriority { + /** + * + * @generated + */ + protected MuteLowerPriorityImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.MUTE_LOWER_PRIORITY; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "MuteLowerPriority"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuilder expressionText = new StringBuilder(); + EList 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(); + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Outputting Sound'. + * + * @generated + */ +public class OutputtingSoundImpl extends ZoneOperatorImpl implements OutputtingSound { + /** + * + * @generated + */ + protected OutputtingSoundImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.OUTPUTTING_SOUND; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".outputtingSound()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.SOUND; + } + + /** + * + * @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.*; + +/** + * An implementation of the model Factory. + * @generated + */ +public class RBASoundFactoryImpl extends EFactoryImpl implements RBASoundFactory { + /** + * Creates the default factory implementation. + * + * @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. + * + * @generated + */ + public RBASoundFactoryImpl() { + super(); + } + + /** + * + * @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"); + } + } + + /** + * + * @generated + */ + public SoundContent createSoundContent() { + SoundContentImpl soundContent = new SoundContentImpl(); + return soundContent; + } + + /** + * + * @generated + */ + public SoundContentSet createSoundContentSet() { + SoundContentSetImpl soundContentSet = new SoundContentSetImpl(); + return soundContentSet; + } + + /** + * + * @generated + */ + public SoundContentState createSoundContentState() { + SoundContentStateImpl soundContentState = new SoundContentStateImpl(); + return soundContentState; + } + + /** + * + * @generated + */ + public Zone createZone() { + ZoneImpl zone = new ZoneImpl(); + return zone; + } + + /** + * + * @generated + */ + public ZoneSet createZoneSet() { + ZoneSetImpl zoneSet = new ZoneSetImpl(); + return zoneSet; + } + + /** + * + * @generated + */ + public IsSounding createIsSounding() { + IsSoundingImpl isSounding = new IsSoundingImpl(); + return isSounding; + } + + /** + * + * @generated + */ + public IsOutputted createIsOutputted() { + IsOutputtedImpl isOutputted = new IsOutputtedImpl(); + return isOutputted; + } + + /** + * + * @generated + */ + public IsMuted createIsMuted() { + IsMutedImpl isMuted = new IsMutedImpl(); + return isMuted; + } + + /** + * + * @generated + */ + public IsAttenuated createIsAttenuated() { + IsAttenuatedImpl isAttenuated = new IsAttenuatedImpl(); + return isAttenuated; + } + + /** + * + * @generated + */ + public OutputtingSound createOutputtingSound() { + OutputtingSoundImpl outputtingSound = new OutputtingSoundImpl(); + return outputtingSound; + } + + /** + * + * @generated + */ + public AllInstanceOfZone createAllInstanceOfZone() { + AllInstanceOfZoneImpl allInstanceOfZone = new AllInstanceOfZoneImpl(); + return allInstanceOfZone; + } + + /** + * + * @generated + */ + public AllInstanceOfSoundContent createAllInstanceOfSoundContent() { + AllInstanceOfSoundContentImpl allInstanceOfSoundContent = new AllInstanceOfSoundContentImpl(); + return allInstanceOfSoundContent; + } + + /** + * + * @generated + */ + public IsOutputtedOn createIsOutputtedOn() { + IsOutputtedOnImpl isOutputtedOn = new IsOutputtedOnImpl(); + return isOutputtedOn; + } + + /** + * + * @generated + */ + public IsChangedOutput createIsChangedOutput() { + IsChangedOutputImpl isChangedOutput = new IsChangedOutputImpl(); + return isChangedOutput; + } + + /** + * + * @generated + */ + public IsTranslatedSoundTo createIsTranslatedSoundTo() { + IsTranslatedSoundToImpl isTranslatedSoundTo = new IsTranslatedSoundToImpl(); + return isTranslatedSoundTo; + } + + /** + * + * @generated + */ + public MuteLowerPriority createMuteLowerPriority() { + MuteLowerPriorityImpl muteLowerPriority = new MuteLowerPriorityImpl(); + return muteLowerPriority; + } + + /** + * + * @generated + */ + public RBASoundPackage getRBASoundPackage() { + return (RBASoundPackage) getEPackage(); + } + + /** + * + * @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; + +/** + * An implementation of the model Package. + * @generated + */ +public class RBASoundPackageImpl extends EPackageImpl implements RBASoundPackage { + /** + * + * @generated + */ + private EClass soundContentEClass = null; + + /** + * + * @generated + */ + private EClass soundContentSetEClass = null; + + /** + * + * @generated + */ + private EClass soundContentStateEClass = null; + + /** + * + * @generated + */ + private EClass zoneEClass = null; + + /** + * + * @generated + */ + private EClass zoneSetEClass = null; + + /** + * + * @generated + */ + private EClass soundContentOperatorEClass = null; + + /** + * + * @generated + */ + private EClass isSoundingEClass = null; + + /** + * + * @generated + */ + private EClass zoneOperatorEClass = null; + + /** + * + * @generated + */ + private EClass isOutputtedEClass = null; + + /** + * + * @generated + */ + private EClass isMutedEClass = null; + + /** + * + * @generated + */ + private EClass isAttenuatedEClass = null; + + /** + * + * @generated + */ + private EClass outputtingSoundEClass = null; + + /** + * + * @generated + */ + private EClass allInstanceOfZoneEClass = null; + + /** + * + * @generated + */ + private EClass allInstanceOfSoundContentEClass = null; + + /** + * + * @generated + */ + private EClass isOutputtedOnEClass = null; + + /** + * + * @generated + */ + private EClass isChangedOutputEClass = null; + + /** + * + * @generated + */ + private EClass isTranslatedSoundToEClass = null; + + /** + * + * @generated + */ + private EClass muteLowerPriorityEClass = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

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. + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see rba.sound.RBASoundPackage#eNS_URI + * @see #init() + * @generated + */ + private RBASoundPackageImpl() { + super(eNS_URI, RBASoundFactory.eINSTANCE); + } + + /** + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *

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. + * + * @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; + } + + /** + * + * @generated + */ + public EClass getSoundContent() { + return soundContentEClass; + } + + /** + * + * @generated + */ + public EOperation getSoundContent__GetExpressionType() { + return soundContentEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getSoundContentSet() { + return soundContentSetEClass; + } + + /** + * + * @generated + */ + public EOperation getSoundContentSet__GetExpressionType() { + return soundContentSetEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getSoundContentState() { + return soundContentStateEClass; + } + + /** + * + * @generated + */ + public EOperation getSoundContentState__GetExpressionType() { + return soundContentStateEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getZone() { + return zoneEClass; + } + + /** + * + * @generated + */ + public EReference getZone_Attenuate() { + return (EReference) zoneEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getZone__GetExpressionType() { + return zoneEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getZoneSet() { + return zoneSetEClass; + } + + /** + * + * @generated + */ + public EOperation getZoneSet__GetExpressionType() { + return zoneSetEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getSoundContentOperator() { + return soundContentOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getSoundContentOperator__GetUnderlyingType() { + return soundContentOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIsSounding() { + return isSoundingEClass; + } + + /** + * + * @generated + */ + public EOperation getIsSounding__GetSymbol() { + return isSoundingEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getZoneOperator() { + return zoneOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getZoneOperator__GetExpressionText() { + return zoneOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIsOutputted() { + return isOutputtedEClass; + } + + /** + * + * @generated + */ + public EOperation getIsOutputted__GetSymbol() { + return isOutputtedEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsOutputted__GetUnderlyingType() { + return isOutputtedEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getIsMuted() { + return isMutedEClass; + } + + /** + * + * @generated + */ + public EOperation getIsMuted__GetSymbol() { + return isMutedEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsMuted__GetUnderlyingType() { + return isMutedEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getIsAttenuated() { + return isAttenuatedEClass; + } + + /** + * + * @generated + */ + public EOperation getIsAttenuated__GetSymbol() { + return isAttenuatedEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsAttenuated__GetUnderlyingType() { + return isAttenuatedEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getOutputtingSound() { + return outputtingSoundEClass; + } + + /** + * + * @generated + */ + public EOperation getOutputtingSound__GetSymbol() { + return outputtingSoundEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getOutputtingSound__GetUnderlyingType() { + return outputtingSoundEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getAllInstanceOfZone() { + return allInstanceOfZoneEClass; + } + + /** + * + * @generated + */ + public EOperation getAllInstanceOfZone__GetExpressionText() { + return allInstanceOfZoneEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getAllInstanceOfZone__GetUnderlyingType() { + return allInstanceOfZoneEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getAllInstanceOfSoundContent() { + return allInstanceOfSoundContentEClass; + } + + /** + * + * @generated + */ + public EOperation getAllInstanceOfSoundContent__GetExpressionText() { + return allInstanceOfSoundContentEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getAllInstanceOfSoundContent__GetUnderlyingType() { + return allInstanceOfSoundContentEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getIsOutputtedOn() { + return isOutputtedOnEClass; + } + + /** + * + * @generated + */ + public EOperation getIsOutputtedOn__GetSymbol() { + return isOutputtedOnEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsOutputtedOn__GetUnderlyingType() { + return isOutputtedOnEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getIsOutputtedOn__GetExpressionText() { + return isOutputtedOnEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getIsChangedOutput() { + return isChangedOutputEClass; + } + + /** + * + * @generated + */ + public EOperation getIsChangedOutput__GetSymbol() { + return isChangedOutputEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsChangedOutput__GetUnderlyingType() { + return isChangedOutputEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getIsTranslatedSoundTo() { + return isTranslatedSoundToEClass; + } + + /** + * + * @generated + */ + public EOperation getIsTranslatedSoundTo__GetSymbol() { + return isTranslatedSoundToEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsTranslatedSoundTo__GetUnderlyingType() { + return isTranslatedSoundToEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getIsTranslatedSoundTo__GetExpressionText() { + return isTranslatedSoundToEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getMuteLowerPriority() { + return muteLowerPriorityEClass; + } + + /** + * + * @generated + */ + public EOperation getMuteLowerPriority__GetSymbol() { + return muteLowerPriorityEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getMuteLowerPriority__GetUnderlyingType() { + return muteLowerPriorityEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getMuteLowerPriority__GetExpressionText() { + return muteLowerPriorityEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public RBASoundFactory getRBASoundFactory() { + return (RBASoundFactory) getEFactoryInstance(); + } + + /** + * + * @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. + * + * @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); + } + + /** + * + * @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. + * + * @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 http://www.eclipse.org/OCL/Import. + * + * @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; + +/** + * An implementation of the model object 'Sound Content'. + * + * @generated + */ +public class SoundContentImpl extends ContentImpl implements SoundContent { + /** + * + * @generated + */ + protected SoundContentImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.SOUND_CONTENT; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.SOUND; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Sound Content Operator'. + * + * @generated + */ +public abstract class SoundContentOperatorImpl extends ContentOperatorImpl implements SoundContentOperator { + /** + * + * @generated + */ + protected SoundContentOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.SOUND_CONTENT_OPERATOR; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Sound Content Set'. + * + * @generated + */ +public class SoundContentSetImpl extends ContentSetImpl implements SoundContentSet { + /** + * + * @generated + */ + protected SoundContentSetImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.SOUND_CONTENT_SET; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.SET_OF_SOUND; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Sound Content State'. + * + * @generated + */ +public class SoundContentStateImpl extends ContentStateImpl implements SoundContentState { + /** + * + * @generated + */ + protected SoundContentStateImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.SOUND_CONTENT_STATE; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.CONTENT_STATE; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Zone'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.sound.impl.ZoneImpl#getAttenuate Attenuate}
  • + *
+ * + * @generated + */ +public class ZoneImpl extends AllocatableImpl implements Zone { + /** + * The cached value of the '{@link #getAttenuate() Attenuate}' containment reference. + * + * @see #getAttenuate() + * @generated + * @ordered + */ + protected Expression attenuate; + + /** + * + * @generated + */ + protected ZoneImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.ZONE; + } + + /** + * + * @generated + */ + public Expression getAttenuate() { + return attenuate; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.ZONE; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBASoundPackage.ZONE__ATTENUATE: + setAttenuate((Expression) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBASoundPackage.ZONE__ATTENUATE: + return attenuate != null; + } + return super.eIsSet(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Zone Operator'. + * + * @generated + */ +public abstract class ZoneOperatorImpl extends OperatorImpl implements ZoneOperator { + /** + * + * @generated + */ + protected ZoneOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.ZONE_OPERATOR; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuffer expressionText = new StringBuffer(); + EList expressions = getOperand(); + expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]"); + expressionText.append(getSymbol()); + return expressionText.toString(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Zone Set'. + * + * @generated + */ +public class ZoneSetImpl extends AllocatableSetImpl implements ZoneSet { + /** + * + * @generated + */ + protected ZoneSetImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBASoundPackage.Literals.ZONE_SET; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.SET_OF_ZONE; + } + + /** + * + * @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.*; + +/** + * The Adapter Factory for the model. It provides an adapter createXXX method for + * each class of the model. + * @see rba.sound.RBASoundPackage + * @generated + */ +public class RBASoundAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * + * @generated + */ + protected static RBASoundPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * @generated + */ + public RBASoundAdapterFactory() { + if (modelPackage == null) { + modelPackage = RBASoundPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * This implementation + * returns true if the object is either the model's package or is an instance object of the model. + * @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 createXXX methods. + * + * @generated + */ + protected RBASoundSwitch modelSwitch = new RBASoundSwitch() { + @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 target. + * + * @param target the object to adapt. + * @return the adapter for the target. + * @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 Sound Content}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Sound Content Set}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Sound Content State}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Zone}'. + * This default + * implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance will catch + * all the cases anyway. + * @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 Zone Set}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Sound Content Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to + * ignore a case when inheritance will catch all the cases anyway. + * @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 Is Sounding}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Zone Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Is Outputted}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Is Muted}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Is Attenuated}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Outputting Sound}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 All Instance Of Zone}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 All Instance Of Sound Content}'. + * This default implementation returns null so that we can easily ignore cases; it's + * useful to ignore a case when inheritance will catch all the cases anyway. + * @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 Is Outputted On}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is Changed Output}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is Translated Sound To}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to + * ignore a case when inheritance will catch all the cases anyway. + * @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 Mute Lower Priority}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Model Element}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Named Element}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Packagable Element}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Rule Object}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Abstract Content}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Content}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Content Set}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Content State}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Abstract Allocatable}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Allocatable}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Allocatable Set}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Operator}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Content Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Set Expression}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Sugar Expression}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Sugar Expression Base}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @return the new adapter. + * @see rba.core.SugarExpressionBase + * @generated + */ + public Adapter createSugarExpressionBaseAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * This default implementation returns null. + * @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.*; + +/** + * The Switch for the model's inheritance hierarchy. It supports the call + * {@link #doSwitch(EObject) doSwitch(object)} to invoke the caseXXX 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. + * @see rba.sound.RBASoundPackage + * @generated + */ +public class RBASoundSwitch extends Switch { + /** + * The cached model package + * + * @generated + */ + protected static RBASoundPackage modelPackage; + + /** + * Creates an instance of the switch. + * + * @generated + */ + public RBASoundSwitch() { + if (modelPackage == null) { + modelPackage = RBASoundPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * + * @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 caseXXX for each class of the model until one returns a non null result; it yields that result. + * @return the first non-null result returned by a caseXXX 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 'Sound Content'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Sound Content'. + * @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 'Sound Content Set'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Sound Content Set'. + * @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 'Sound Content State'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Sound Content State'. + * @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 'Zone'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Zone'. + * @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 'Zone Set'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Zone Set'. + * @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 'Sound Content Operator'. + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Sound Content Operator'. + * @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 'Is Sounding'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Sounding'. + * @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 'Zone Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Zone Operator'. + * @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 'Is Outputted'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Outputted'. + * @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 'Is Muted'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Muted'. + * @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 'Is Attenuated'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Attenuated'. + * @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 'Outputting Sound'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Outputting Sound'. + * @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 'All Instance Of Zone'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'All Instance Of Zone'. + * @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 'All Instance Of Sound Content'. This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'All Instance Of Sound Content'. + * @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 'Is Outputted On'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Outputted On'. + * @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 'Is Changed Output'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Changed Output'. + * @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 'Is Translated Sound To'. + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Translated Sound To'. + * @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 'Mute Lower Priority'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Mute Lower Priority'. + * @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 'Model Element'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Model Element'. + * @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 'Named Element'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Named Element'. + * @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 'Packagable Element'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Packagable Element'. + * @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 'Rule Object'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Rule Object'. + * @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 'Abstract Content'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Abstract Content'. + * @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 'Content'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content'. + * @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 'Content Set'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content Set'. + * @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 'Content State'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content State'. + * @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 'Abstract Allocatable'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Abstract Allocatable'. + * @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 'Allocatable'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Allocatable'. + * @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 'Allocatable Set'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Allocatable Set'. + * @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 'Expression'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Expression'. + * @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 'Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Operator'. + * @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 'Content Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content Operator'. + * @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 'Set Expression'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Set Expression'. + * @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 'Sugar Expression'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Sugar Expression'. + * @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 'Sugar Expression Base'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Sugar Expression Base'. + * @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 'EObject'. + * This + * implementation returns null; returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'EObject'. + * @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 @@ + + + + + + + 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 @@ + + + rba.model.view.edit + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/AllInstanceOfArea.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/AllInstanceOfViewContent.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/Area.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/AreaSet.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/CompositeArea.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/CyclicContent.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/Display.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/DisplayingContent.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/FixedPositionLayout.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/HideLowerPriority.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/HorizontalLayout.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/IsChangedDisplay.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/IsDisplayed.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/IsDisplayedOn.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/IsHidden.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/IsTranslatedViewTo.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/IsVisible.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/MessageApp.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/MessageContent.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/Offset.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/PositionContainer.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/Size.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/SizeReference.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/VerticalLayout.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/ViewContent.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/ViewContentSet.gif 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 Binary files /dev/null and b/rba.model.view.edit/icons/full/obj16/ViewContentState.gif 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 @@ + + + + + + + + + + + + + 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. + * + * @generated + */ +public class AlignedLayoutItemProvider extends LayoutManagerItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AlignedLayoutItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addSubareaPropertyDescriptor(object); + addBasePointPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Subarea feature. + * + * @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. + * + * @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)); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class AllInstanceOfAreaItemProvider extends SetExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AllInstanceOfAreaItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns AllInstanceOfArea.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AllInstanceOfArea")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * + * @generated + */ +public class AllInstanceOfViewContentItemProvider extends SetExpressionItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AllInstanceOfViewContentItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns AllInstanceOfViewContent.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AllInstanceOfViewContent")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * + * @generated + */ +public class AreaItemProvider extends AllocatableItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AreaItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBAViewPackage.Literals.AREA__ZORDER); + childrenFeatures.add(RBAViewPackage.Literals.AREA__SIZE); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Area")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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}. + * + * @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. + * + * @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. + * + * @generated + */ +public class AreaOperatorItemProvider extends AllocatableOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AreaOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * + * @generated + */ +public class AreaSetItemProvider extends AllocatableSetItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public AreaSetItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns AreaSet.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AreaSet")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * + * @generated + */ +public class CompositeAreaItemProvider extends PackagableElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public CompositeAreaItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBAViewPackage.Literals.COMPOSITE_AREA__LAYOUT); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/CompositeArea")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * + * @generated + */ +public class DisplayItemProvider extends PackagableElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public DisplayItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBAViewPackage.Literals.DISPLAY__ROOT); + childrenFeatures.add(RBAViewPackage.Literals.DISPLAY__SIZE); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Display")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * @generated + */ +public class DisplayingContentItemProvider extends AreaOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public DisplayingContentItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns DisplayingContent.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/DisplayingContent")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class FixedPositionLayoutItemProvider extends LayoutManagerItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public FixedPositionLayoutItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBAViewPackage.Literals.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/FixedPositionLayout")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class HideLowerPriorityItemProvider extends OperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public HideLowerPriorityItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns HideLowerPriority.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/HideLowerPriority")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * @generated + */ +public class HorizontalLayoutItemProvider extends AlignedLayoutItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public HorizontalLayoutItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns HorizontalLayout.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/HorizontalLayout")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class IsChangedDisplayItemProvider extends AreaOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsChangedDisplayItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsChangedDisplay.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsChangedDisplay")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsDisplayedItemProvider extends AreaOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsDisplayedItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsDisplayed.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsDisplayed")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsDisplayedOnItemProvider extends ViewContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsDisplayedOnItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsDisplayedOn.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsDisplayedOn")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsHiddenItemProvider extends AreaOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsHiddenItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsHidden.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsHidden")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * @generated + */ +public class IsTranslatedViewToItemProvider extends AreaOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsTranslatedViewToItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsTranslatedViewTo.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsTranslatedViewTo")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class IsVisibleItemProvider extends ViewContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public IsVisibleItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns IsVisible.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IsVisible")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class LayoutManagerItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public LayoutManagerItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * + * @generated + */ +public class OffsetItemProvider extends PackagableElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public OffsetItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addXPropertyDescriptor(object); + addYPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the X feature. + * + * @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. + * + * @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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBAViewPackage.Literals.OFFSET__SIZE); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Offset")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * @generated + */ +public class PositionContainerItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public PositionContainerItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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. + * + * @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. + * + * @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. + * + * @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. + * + * @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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBAViewPackage.Literals.POSITION_CONTAINER__OFFSET); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PositionContainer")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * + * @generated + */ +public class RBAViewItemProviderAdapterFactory extends RBAViewAdapterFactory + implements ComposeableAdapterFactory, IChangeNotifier, IDisposable { + /** + * This keeps track of the root adapter factory that delegates to this adapter factory. + * + * @generated + */ + protected ComposedAdapterFactory parentAdapterFactory; + + /** + * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. + * + * @generated + */ + protected IChangeNotifier changeNotifier = new ChangeNotifier(); + + /** + * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. + * + * @generated + */ + protected Collection supportedTypes = new ArrayList(); + + /** + * This constructs an instance. + * + * @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. + * + * @generated + */ + protected ViewContentItemProvider viewContentItemProvider; + + /** + * This creates an adapter for a {@link rba.view.ViewContent}. + * + * @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. + * + * @generated + */ + protected ViewContentSetItemProvider viewContentSetItemProvider; + + /** + * This creates an adapter for a {@link rba.view.ViewContentSet}. + * + * @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. + * + * + * @generated + */ + protected ViewContentStateItemProvider viewContentStateItemProvider; + + /** + * This creates an adapter for a {@link rba.view.ViewContentState}. + * + * @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. + * + * @generated + */ + protected VerticalLayoutItemProvider verticalLayoutItemProvider; + + /** + * This creates an adapter for a {@link rba.view.VerticalLayout}. + * + * @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. + * + * + * @generated + */ + protected HorizontalLayoutItemProvider horizontalLayoutItemProvider; + + /** + * This creates an adapter for a {@link rba.view.HorizontalLayout}. + * + * @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. + * + * + * @generated + */ + protected FixedPositionLayoutItemProvider fixedPositionLayoutItemProvider; + + /** + * This creates an adapter for a {@link rba.view.FixedPositionLayout}. + * + * @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. + * + * + * @generated + */ + protected PositionContainerItemProvider positionContainerItemProvider; + + /** + * This creates an adapter for a {@link rba.view.PositionContainer}. + * + * @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. + * + * @generated + */ + protected DisplayItemProvider displayItemProvider; + + /** + * This creates an adapter for a {@link rba.view.Display}. + * + * @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. + * + * @generated + */ + protected CompositeAreaItemProvider compositeAreaItemProvider; + + /** + * This creates an adapter for a {@link rba.view.CompositeArea}. + * + * @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. + * + * @generated + */ + protected AreaItemProvider areaItemProvider; + + /** + * This creates an adapter for a {@link rba.view.Area}. + * + * @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. + * + * @generated + */ + protected AreaSetItemProvider areaSetItemProvider; + + /** + * This creates an adapter for a {@link rba.view.AreaSet}. + * + * @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. + * + * @generated + */ + protected SizeItemProvider sizeItemProvider; + + /** + * This creates an adapter for a {@link rba.view.Size}. + * + * @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. + * + * @generated + */ + protected SizeReferenceItemProvider sizeReferenceItemProvider; + + /** + * This creates an adapter for a {@link rba.view.SizeReference}. + * + * @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. + * + * @generated + */ + protected OffsetItemProvider offsetItemProvider; + + /** + * This creates an adapter for a {@link rba.view.Offset}. + * + * @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. + * + * @generated + */ + protected IsDisplayedItemProvider isDisplayedItemProvider; + + /** + * This creates an adapter for a {@link rba.view.IsDisplayed}. + * + * @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. + * + * + * @generated + */ + protected DisplayingContentItemProvider displayingContentItemProvider; + + /** + * This creates an adapter for a {@link rba.view.DisplayingContent}. + * + * @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. + * + * @generated + */ + protected IsHiddenItemProvider isHiddenItemProvider; + + /** + * This creates an adapter for a {@link rba.view.IsHidden}. + * + * @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. + * + * @generated + */ + protected IsVisibleItemProvider isVisibleItemProvider; + + /** + * This creates an adapter for a {@link rba.view.IsVisible}. + * + * @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. + * + * + * @generated + */ + protected AllInstanceOfAreaItemProvider allInstanceOfAreaItemProvider; + + /** + * This creates an adapter for a {@link rba.view.AllInstanceOfArea}. + * + * @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. + * + * @generated + */ + protected AllInstanceOfViewContentItemProvider allInstanceOfViewContentItemProvider; + + /** + * This creates an adapter for a {@link rba.view.AllInstanceOfViewContent}. + * + * @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. + * + * @generated + */ + protected IsDisplayedOnItemProvider isDisplayedOnItemProvider; + + /** + * This creates an adapter for a {@link rba.view.IsDisplayedOn}. + * + * @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. + * + * + * @generated + */ + protected IsChangedDisplayItemProvider isChangedDisplayItemProvider; + + /** + * This creates an adapter for a {@link rba.view.IsChangedDisplay}. + * + * @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. + * + * + * @generated + */ + protected IsTranslatedViewToItemProvider isTranslatedViewToItemProvider; + + /** + * This creates an adapter for a {@link rba.view.IsTranslatedViewTo}. + * + * @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. + * + * + * @generated + */ + protected HideLowerPriorityItemProvider hideLowerPriorityItemProvider; + + /** + * This creates an adapter for a {@link rba.view.HideLowerPriority}. + * + * @generated + */ + @Override + public Adapter createHideLowerPriorityAdapter() { + if (hideLowerPriorityItemProvider == null) { + hideLowerPriorityItemProvider = new HideLowerPriorityItemProvider(this); + } + + return hideLowerPriorityItemProvider; + } + + /** + * This returns the root adapter factory that contains this factory. + * + * @generated + */ + public ComposeableAdapterFactory getRootAdapterFactory() { + return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory(); + } + + /** + * This sets the composed adapter factory that contains this factory. + * + * @generated + */ + public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) { + this.parentAdapterFactory = parentAdapterFactory; + } + + /** + * + * @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. + * @generated + */ + @Override + public Adapter adapt(Notifier notifier, Object type) { + return super.adapt(notifier, this); + } + + /** + * + * @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. + * + * @generated + */ + public void addListener(INotifyChangedListener notifyChangedListener) { + changeNotifier.addListener(notifyChangedListener); + } + + /** + * This removes a listener. + * + * @generated + */ + public void removeListener(INotifyChangedListener notifyChangedListener) { + changeNotifier.removeListener(notifyChangedListener); + } + + /** + * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. + * @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. + * + * @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. + * + * @generated + */ +public final class RbaViewEditPlugin extends EMFPlugin { + /** + * Keep track of the singleton. + * + * @generated + */ + public static final RbaViewEditPlugin INSTANCE = new RbaViewEditPlugin(); + + /** + * Keep track of the singleton. + * + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * + * @generated + */ + public RbaViewEditPlugin() { + super(new ResourceLocator[] { RbaCoreEditPlugin.INSTANCE, }); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * + * @return the singleton instance. + * @generated + */ + @Override + public ResourceLocator getPluginResourceLocator() { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() { + return plugin; + } + + /** + * The actual implementation of the Eclipse Plugin. + * + * @generated + */ + public static class Implementation extends EclipsePlugin { + /** + * Creates an instance. + * + * @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. + * + * @generated + */ +public class SizeIdentifierItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SizeIdentifierItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * + * @generated + */ +public class SizeItemProvider extends PackagableElementItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SizeItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addWidthPropertyDescriptor(object); + addHeightPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Width feature. + * + * @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. + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Size")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * + * @generated + */ +public class SizeReferenceItemProvider extends SizeIdentifierItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public SizeReferenceItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addSizePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Size feature. + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/SizeReference")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class VerticalLayoutItemProvider extends AlignedLayoutItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public VerticalLayoutItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns VerticalLayout.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/VerticalLayout")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @generated + */ +public class ViewContentItemProvider extends ContentItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ViewContentItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List 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}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(RBAViewPackage.Literals.VIEW_CONTENT__SIZE); + } + return childrenFeatures; + } + + /** + * + * @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. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ViewContent")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * + * @generated + */ +public class ViewContentOperatorItemProvider extends ContentOperatorItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ViewContentOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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. + * + * @generated + */ +public class ViewContentSetItemProvider extends ContentSetItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ViewContentSetItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ViewContentSet.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ViewContentSet")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * @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. + * @generated + */ +public class ViewContentStateItemProvider extends ContentStateItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public ViewContentStateItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns ViewContentState.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ViewContentState")); + } + + /** + * + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() { + return true; + } + + /** + * This returns the label text for the adapted class. + * + * @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}. + * + * @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. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection 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. + * + * @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 @@ + + + + + + + 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 @@ + + + rba.model.view + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.sirius.nature.modelingproject + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + org.eclipse.xtext.ui.shared.xtextNature + + 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 @@ + + + + rbaview.ecore + rbaview.genmodel + platform:/resource/rba.core/model/rbacore.ecore + http://www.eclipse.org/emf/2002/Ecore + platform:/resource/rba.core/model/rbacore.genmodel + platform:/resource/rba.model.core/model/rbacore.genmodel + platform:/resource/rba.model.core/model/rbacore.ecore + + + + + + + + + + + + + + + + + bold + + + + + + bold + + + + + + + + + + + + + + + + bold + + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + italic + + + + + + + + + + italic + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bold + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + italic + + + + + + + + + + italic + + + + + + + + + + + + + + + + bold + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + bold + + + + + + + + bold + + + + + + + + + italic + + + + + + + + italic + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + + italic + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + labelSize + bold + + + labelSize + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + bold + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + labelSize + bold + + + labelSize + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + + + 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 @@ + + + +
+
+ + + +
+ + + +
+
+ + + + +
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + +
+ + + + + +
+ + + +
+
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+
+ + + + + + +
+ + + +
+ + + + +
+ + + + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + +
+
+ + + + +
+
+ + + + + +
+ + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + 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 @@ + + + rbaview.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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; + +/** + * + * A representation of the model object 'Aligned Layout'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.view.AlignedLayout#getSubarea Subarea}
  • + *
  • {@link rba.view.AlignedLayout#getBasePoint Base Point}
  • + *
+ * + * @see rba.view.RBAViewPackage#getAlignedLayout() + * @model abstract="true" + * @generated + */ +public interface AlignedLayout extends LayoutManager { + /** + * Returns the value of the 'Subarea' reference list. + * The list contents are of type {@link rba.view.Area}. + * + * + * + * + * + * @return the value of the 'Subarea' reference list. + * @see rba.view.RBAViewPackage#getAlignedLayout_Subarea() + * @model + * @generated + */ + EList getSubarea(); + + /** + * Returns the value of the 'Base Point' attribute. + * The literals are from the enumeration {@link rba.view.BasePoint}. + * + * + * + * + * + * @return the value of the 'Base Point' 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 Base Point}' attribute. + * + * + * @param value the new value of the 'Base Point' attribute. + * @see rba.view.BasePoint + * @see #getBasePoint() + * @generated + */ + void setBasePoint(BasePoint value); + + /** + * + * + * @model ordered="false" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set<Area> areas = new java.util.HashSet<Area>();\r\nfor (Area area : getSubarea()) {\r\n areas.addAll(area.collectLeafAllocatable().stream().map(allocatable -> (Area) allocatable).collect(java.util.stream.Collectors.toList()));\r\n}\r\nreturn new org.eclipse.emf.common.util.BasicEList<Area>(areas);'" + * @generated + */ + EList 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; + +/** + * + * A representation of the model object 'All Instance Of Area'. + * + * + * + * + * + * + * + * @see rba.view.RBAViewPackage#getAllInstanceOfArea() + * @model + * @generated + */ +public interface AllInstanceOfArea extends SetExpression { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"AREA\";'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'All Instance Of View Content'. + * + * + * + * + * + * + * + * @see rba.view.RBAViewPackage#getAllInstanceOfViewContent() + * @model + * @generated + */ +public interface AllInstanceOfViewContent extends SetExpression { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"ALL_VIEWCONTENTS\";'" + * @generated + */ + String getExpressionText(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Area'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.view.Area#getZorder Zorder}
  • + *
  • {@link rba.view.Area#getSize Size}
  • + *
+ * + * @see rba.view.RBAViewPackage#getArea() + * @model + * @generated + */ +public interface Area extends Allocatable { + /** + * Returns the value of the 'Zorder' containment reference. + * + * + * + * + * + * @return the value of the 'Zorder' 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 Zorder}' containment reference. + * + * + * @param value the new value of the 'Zorder' containment reference. + * @see #getZorder() + * @generated + */ + void setZorder(Expression value); + + /** + * Returns the value of the 'Size' containment reference list. + * The list contents are of type {@link rba.view.SizeIdentifier}. + * + * + * + * + * + * @return the value of the 'Size' containment reference list. + * @see rba.view.RBAViewPackage#getArea_Size() + * @model containment="true" + * @generated + */ + EList getSize(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Area Operator'. + * + * + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'Area Set'. + * + * + * + * + * + * + * + * @see rba.view.RBAViewPackage#getAreaSet() + * @model + * @generated + */ +public interface AreaSet extends AllocatableSet { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the literals of the enumeration 'Base Point', + * and utility methods for working with them. + * + * + * + * + * @see rba.view.RBAViewPackage#getBasePoint() + * @model + * @generated + */ +public enum BasePoint implements Enumerator { + /** + * The 'LEFT TOP' literal object. + * + * + * @see #LEFT_TOP_VALUE + * @generated + * @ordered + */ + LEFT_TOP(0, "LEFT_TOP", "LEFT_TOP"), + + /** + * The 'LEFT MIDDLE' literal object. + * + * + * @see #LEFT_MIDDLE_VALUE + * @generated + * @ordered + */ + LEFT_MIDDLE(1, "LEFT_MIDDLE", "LEFT_MIDDLE"), + + /** + * The 'LEFT BOTTOM' literal object. + * + * + * @see #LEFT_BOTTOM_VALUE + * @generated + * @ordered + */ + LEFT_BOTTOM(2, "LEFT_BOTTOM", "LEFT_BOTTOM"), + + /** + * The 'RIGHT TOP' literal object. + * + * + * @see #RIGHT_TOP_VALUE + * @generated + * @ordered + */ + RIGHT_TOP(3, "RIGHT_TOP", "RIGHT_TOP"), + + /** + * The 'RIGHT MIDDLE' literal object. + * + * + * @see #RIGHT_MIDDLE_VALUE + * @generated + * @ordered + */ + RIGHT_MIDDLE(4, "RIGHT_MIDDLE", "RIGHT_MIDDLE"), + + /** + * The 'RIGHT BOTTOM' literal object. + * + * + * @see #RIGHT_BOTTOM_VALUE + * @generated + * @ordered + */ + RIGHT_BOTTOM(5, "RIGHT_BOTTOM", "RIGHT_BOTTOM"), + + /** + * The 'CENTER TOP' literal object. + * + * + * @see #CENTER_TOP_VALUE + * @generated + * @ordered + */ + CENTER_TOP(6, "CENTER_TOP", "CENTER_TOP"), + + /** + * The 'CENTER MIDDLE' literal object. + * + * + * @see #CENTER_MIDDLE_VALUE + * @generated + * @ordered + */ + CENTER_MIDDLE(7, "CENTER_MIDDLE", "CENTER_MIDDLE"), + + /** + * The 'CENTER BOTTOM' literal object. + * + * + * @see #CENTER_BOTTOM_VALUE + * @generated + * @ordered + */ + CENTER_BOTTOM(8, "CENTER_BOTTOM", "CENTER_BOTTOM"); + + /** + * The 'LEFT TOP' literal value. + * + *

+ * If the meaning of 'LEFT TOP' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #LEFT_TOP + * @model + * @generated + * @ordered + */ + public static final int LEFT_TOP_VALUE = 0; + + /** + * The 'LEFT MIDDLE' literal value. + * + *

+ * If the meaning of 'LEFT MIDDLE' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #LEFT_MIDDLE + * @model + * @generated + * @ordered + */ + public static final int LEFT_MIDDLE_VALUE = 1; + + /** + * The 'LEFT BOTTOM' literal value. + * + *

+ * If the meaning of 'LEFT BOTTOM' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #LEFT_BOTTOM + * @model + * @generated + * @ordered + */ + public static final int LEFT_BOTTOM_VALUE = 2; + + /** + * The 'RIGHT TOP' literal value. + * + *

+ * If the meaning of 'RIGHT TOP' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #RIGHT_TOP + * @model + * @generated + * @ordered + */ + public static final int RIGHT_TOP_VALUE = 3; + + /** + * The 'RIGHT MIDDLE' literal value. + * + *

+ * If the meaning of 'RIGHT MIDDLE' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #RIGHT_MIDDLE + * @model + * @generated + * @ordered + */ + public static final int RIGHT_MIDDLE_VALUE = 4; + + /** + * The 'RIGHT BOTTOM' literal value. + * + *

+ * If the meaning of 'RIGHT BOTTOM' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #RIGHT_BOTTOM + * @model + * @generated + * @ordered + */ + public static final int RIGHT_BOTTOM_VALUE = 5; + + /** + * The 'CENTER TOP' literal value. + * + *

+ * If the meaning of 'CENTER TOP' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #CENTER_TOP + * @model + * @generated + * @ordered + */ + public static final int CENTER_TOP_VALUE = 6; + + /** + * The 'CENTER MIDDLE' literal value. + * + *

+ * If the meaning of 'CENTER MIDDLE' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #CENTER_MIDDLE + * @model + * @generated + * @ordered + */ + public static final int CENTER_MIDDLE_VALUE = 7; + + /** + * The 'CENTER BOTTOM' literal value. + * + *

+ * If the meaning of 'CENTER BOTTOM' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #CENTER_BOTTOM + * @model + * @generated + * @ordered + */ + public static final int CENTER_BOTTOM_VALUE = 8; + + /** + * An array of all the 'Base Point' enumerators. + * + * + * @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 'Base Point' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Base Point' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @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 'Base Point' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @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 'Base Point' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @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; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private BasePoint(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @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; + +/** + * + * A representation of the model object 'Composite Area'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.view.CompositeArea#getLayout Layout}
  • + *
+ * + * @see rba.view.RBAViewPackage#getCompositeArea() + * @model + * @generated + */ +public interface CompositeArea extends PackagableElement { + /** + * Returns the value of the 'Layout' containment reference. + * + * + * + * + * + * @return the value of the 'Layout' 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 Layout}' containment reference. + * + * + * @param value the new value of the 'Layout' containment reference. + * @see #getLayout() + * @generated + */ + void setLayout(LayoutManager value); + + /** + * + * + * + * @Override + * + * @model ordered="false" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set<Area> areas = new java.util.HashSet<Area>();\r\nif (layout != null) {\r\n areas.addAll(layout.collectLeafArea());\r\n}\r\n\r\nreturn new org.eclipse.emf.common.util.BasicEList<Area>(areas);'" + * @generated + */ + EList collectLeafArea(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Display'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.view.Display#getRoot Root}
  • + *
  • {@link rba.view.Display#getSize Size}
  • + *
+ * + * @see rba.view.RBAViewPackage#getDisplay() + * @model + * @generated + */ +public interface Display extends PackagableElement { + /** + * Returns the value of the 'Root' containment reference. + * + * + * + * + * + * @return the value of the 'Root' 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 Root}' containment reference. + * + * + * @param value the new value of the 'Root' containment reference. + * @see #getRoot() + * @generated + */ + void setRoot(CompositeArea value); + + /** + * Returns the value of the 'Size' containment reference. + * + * + * + * + * + * @return the value of the 'Size' 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 Size}' containment reference. + * + * + * @param value the new value of the 'Size' 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; + +/** + * + * A representation of the model object 'Displaying Content'. + * + * + * + * + * + * + * + * @see rba.view.RBAViewPackage#getDisplayingContent() + * @model + * @generated + */ +public interface DisplayingContent extends AreaOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".displayingContent()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Fixed Position Layout'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.view.FixedPositionLayout#getSubAreaPosition Sub Area Position}
  • + *
+ * + * @see rba.view.RBAViewPackage#getFixedPositionLayout() + * @model + * @generated + */ +public interface FixedPositionLayout extends LayoutManager { + /** + * Returns the value of the 'Sub Area Position' containment reference list. + * The list contents are of type {@link rba.view.PositionContainer}. + * + * + * + * + * + * @return the value of the 'Sub Area Position' containment reference list. + * @see rba.view.RBAViewPackage#getFixedPositionLayout_SubAreaPosition() + * @model containment="true" + * @generated + */ + EList getSubAreaPosition(); + + /** + * + * + * @model ordered="false" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set<Area> areas = new java.util.HashSet<Area>();\r\nfor (PositionContainer pc : getSubAreaPosition()) {\r\n areas.addAll(pc.getArea().collectLeafAllocatable().stream().map(allocatable -> (Area) allocatable).collect(java.util.stream.Collectors.toList()));\r\n}\r\nreturn new org.eclipse.emf.common.util.BasicEList<Area>(areas);'" + * @generated + */ + EList 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; + +/** + * + * A representation of the model object 'Hide Lower Priority'. + * + * + * + * @see rba.view.RBAViewPackage#getHideLowerPriority() + * @model + * @generated + */ +public interface HideLowerPriority extends Operator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"HideLowerPriority\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\",\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Horizontal Layout'. + * + * + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'Is Changed Display'. + * + * + * + * @see rba.view.RBAViewPackage#getIsChangedDisplay() + * @model + * @generated + */ +public interface IsChangedDisplay extends AreaOperator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isChangedDisplay()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @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; + +/** + * + * A representation of the model object 'Is Displayed'. + * + * + * + * + * + * + * + * @see rba.view.RBAViewPackage#getIsDisplayed() + * @model + * @generated + */ +public interface IsDisplayed extends AreaOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isDisplayed()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Displayed On'. + * + * + * + * @see rba.view.RBAViewPackage#getIsDisplayedOn() + * @model + * @generated + */ +public interface IsDisplayedOn extends ViewContentOperator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isDisplayedOn\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Is Hidden'. + * + * + * + * + * + * + * + * @see rba.view.RBAViewPackage#getIsHidden() + * @model + * @generated + */ +public interface IsHidden extends AreaOperator { + /** + * + * + * + * @Override + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isHidden()\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Is Translated View To'. + * + * + * + * @see rba.view.RBAViewPackage#getIsTranslatedViewTo() + * @model + * @generated + */ +public interface IsTranslatedViewTo extends AreaOperator, SugarExpressionBase { + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isTranslatedViewTo\";'" + * @generated + */ + String getSymbol(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'" + * @generated + */ + ExpressionType getUnderlyingType(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList<rba.core.Expression> expressions = getOperand();\r\nexpressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() > 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; + +/** + * + * A representation of the model object 'Is Visible'. + * + * + * + * + * + * + * + * @see rba.view.RBAViewPackage#getIsVisible() + * @model + * @generated + */ +public interface IsVisible extends ViewContentOperator { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'Layout Manager'. + * + * + * + * + * + * + * + * @see rba.view.RBAViewPackage#getLayoutManager() + * @model abstract="true" + * @generated + */ +public interface LayoutManager extends EObject { + /** + * + * + * + * + * + * @model ordered="false" + * @generated + */ + EList 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; + +/** + * + * A representation of the model object 'Offset'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.view.Offset#getX X}
  • + *
  • {@link rba.view.Offset#getY Y}
  • + *
  • {@link rba.view.Offset#getSize Size}
  • + *
+ * + * @see rba.view.RBAViewPackage#getOffset() + * @model + * @generated + */ +public interface Offset extends PackagableElement { + /** + * Returns the value of the 'X' attribute. + * + * + * + * + * + * @return the value of the 'X' 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 X}' attribute. + * + * + * @param value the new value of the 'X' attribute. + * @see #isSetX() + * @see #unsetX() + * @see #getX() + * @generated + */ + void setX(int value); + + /** + * Unsets the value of the '{@link rba.view.Offset#getX X}' attribute. + * + * + * @see #isSetX() + * @see #getX() + * @see #setX(int) + * @generated + */ + void unsetX(); + + /** + * Returns whether the value of the '{@link rba.view.Offset#getX X}' attribute is set. + * + * + * @return whether the value of the 'X' attribute is set. + * @see #unsetX() + * @see #getX() + * @see #setX(int) + * @generated + */ + boolean isSetX(); + + /** + * Returns the value of the 'Y' attribute. + * + * + * + * + * + * @return the value of the 'Y' 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 Y}' attribute. + * + * + * @param value the new value of the 'Y' attribute. + * @see #isSetY() + * @see #unsetY() + * @see #getY() + * @generated + */ + void setY(int value); + + /** + * Unsets the value of the '{@link rba.view.Offset#getY Y}' attribute. + * + * + * @see #isSetY() + * @see #getY() + * @see #setY(int) + * @generated + */ + void unsetY(); + + /** + * Returns whether the value of the '{@link rba.view.Offset#getY Y}' attribute is set. + * + * + * @return whether the value of the 'Y' attribute is set. + * @see #unsetY() + * @see #getY() + * @see #setY(int) + * @generated + */ + boolean isSetY(); + + /** + * Returns the value of the 'Size' containment reference. + * + * + * + * + * + * @return the value of the 'Size' 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 Size}' containment reference. + * + * + * @param value the new value of the 'Size' 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; + +/** + * + * A representation of the model object 'Position Container'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.view.PositionContainer#getX X}
  • + *
  • {@link rba.view.PositionContainer#getY Y}
  • + *
  • {@link rba.view.PositionContainer#getBasePoint Base Point}
  • + *
  • {@link rba.view.PositionContainer#getArea Area}
  • + *
  • {@link rba.view.PositionContainer#getOffset Offset}
  • + *
+ * + * @see rba.view.RBAViewPackage#getPositionContainer() + * @model + * @generated + */ +public interface PositionContainer extends EObject { + /** + * Returns the value of the 'X' attribute. + * + * + * + * + * + * @return the value of the 'X' 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 X}' attribute. + * + * + * @param value the new value of the 'X' attribute. + * @see #isSetX() + * @see #unsetX() + * @see #getX() + * @generated + */ + void setX(int value); + + /** + * Unsets the value of the '{@link rba.view.PositionContainer#getX X}' attribute. + * + * + * @see #isSetX() + * @see #getX() + * @see #setX(int) + * @generated + */ + void unsetX(); + + /** + * Returns whether the value of the '{@link rba.view.PositionContainer#getX X}' attribute is set. + * + * + * @return whether the value of the 'X' attribute is set. + * @see #unsetX() + * @see #getX() + * @see #setX(int) + * @generated + */ + boolean isSetX(); + + /** + * Returns the value of the 'Y' attribute. + * + * + * + * + * + * @return the value of the 'Y' 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 Y}' attribute. + * + * + * @param value the new value of the 'Y' attribute. + * @see #isSetY() + * @see #unsetY() + * @see #getY() + * @generated + */ + void setY(int value); + + /** + * Unsets the value of the '{@link rba.view.PositionContainer#getY Y}' attribute. + * + * + * @see #isSetY() + * @see #getY() + * @see #setY(int) + * @generated + */ + void unsetY(); + + /** + * Returns whether the value of the '{@link rba.view.PositionContainer#getY Y}' attribute is set. + * + * + * @return whether the value of the 'Y' attribute is set. + * @see #unsetY() + * @see #getY() + * @see #setY(int) + * @generated + */ + boolean isSetY(); + + /** + * Returns the value of the 'Base Point' attribute. + * The literals are from the enumeration {@link rba.view.BasePoint}. + * + * + * + * + * + * @return the value of the 'Base Point' 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 Base Point}' attribute. + * + * + * @param value the new value of the 'Base Point' attribute. + * @see rba.view.BasePoint + * @see #getBasePoint() + * @generated + */ + void setBasePoint(BasePoint value); + + /** + * Returns the value of the 'Area' reference. + * + *

+ * If the meaning of the 'Area' reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Area' 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 Area}' reference. + * + * + * @param value the new value of the 'Area' reference. + * @see #getArea() + * @generated + */ + void setArea(Area value); + + /** + * Returns the value of the 'Offset' containment reference list. + * The list contents are of type {@link rba.view.Offset}. + * + * + * + * + * + * @return the value of the 'Offset' containment reference list. + * @see rba.view.RBAViewPackage#getPositionContainer_Offset() + * @model containment="true" + * @generated + */ + EList 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; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see rba.view.RBAViewPackage + * @generated + */ +public interface RBAViewFactory extends EFactory { + /** + * The singleton instance of the factory. + * + * + * @generated + */ + RBAViewFactory eINSTANCE = rba.view.impl.RBAViewFactoryImpl.init(); + + /** + * Returns a new object of class 'View Content'. + * + * + * @return a new object of class 'View Content'. + * @generated + */ + ViewContent createViewContent(); + + /** + * Returns a new object of class 'View Content Set'. + * + * + * @return a new object of class 'View Content Set'. + * @generated + */ + ViewContentSet createViewContentSet(); + + /** + * Returns a new object of class 'View Content State'. + * + * + * @return a new object of class 'View Content State'. + * @generated + */ + ViewContentState createViewContentState(); + + /** + * Returns a new object of class 'Vertical Layout'. + * + * + * @return a new object of class 'Vertical Layout'. + * @generated + */ + VerticalLayout createVerticalLayout(); + + /** + * Returns a new object of class 'Horizontal Layout'. + * + * + * @return a new object of class 'Horizontal Layout'. + * @generated + */ + HorizontalLayout createHorizontalLayout(); + + /** + * Returns a new object of class 'Fixed Position Layout'. + * + * + * @return a new object of class 'Fixed Position Layout'. + * @generated + */ + FixedPositionLayout createFixedPositionLayout(); + + /** + * Returns a new object of class 'Position Container'. + * + * + * @return a new object of class 'Position Container'. + * @generated + */ + PositionContainer createPositionContainer(); + + /** + * Returns a new object of class 'Display'. + * + * + * @return a new object of class 'Display'. + * @generated + */ + Display createDisplay(); + + /** + * Returns a new object of class 'Composite Area'. + * + * + * @return a new object of class 'Composite Area'. + * @generated + */ + CompositeArea createCompositeArea(); + + /** + * Returns a new object of class 'Area'. + * + * + * @return a new object of class 'Area'. + * @generated + */ + Area createArea(); + + /** + * Returns a new object of class 'Area Set'. + * + * + * @return a new object of class 'Area Set'. + * @generated + */ + AreaSet createAreaSet(); + + /** + * Returns a new object of class 'Size'. + * + * + * @return a new object of class 'Size'. + * @generated + */ + Size createSize(); + + /** + * Returns a new object of class 'Size Reference'. + * + * + * @return a new object of class 'Size Reference'. + * @generated + */ + SizeReference createSizeReference(); + + /** + * Returns a new object of class 'Offset'. + * + * + * @return a new object of class 'Offset'. + * @generated + */ + Offset createOffset(); + + /** + * Returns a new object of class 'Is Displayed'. + * + * + * @return a new object of class 'Is Displayed'. + * @generated + */ + IsDisplayed createIsDisplayed(); + + /** + * Returns a new object of class 'Displaying Content'. + * + * + * @return a new object of class 'Displaying Content'. + * @generated + */ + DisplayingContent createDisplayingContent(); + + /** + * Returns a new object of class 'Is Hidden'. + * + * + * @return a new object of class 'Is Hidden'. + * @generated + */ + IsHidden createIsHidden(); + + /** + * Returns a new object of class 'Is Visible'. + * + * + * @return a new object of class 'Is Visible'. + * @generated + */ + IsVisible createIsVisible(); + + /** + * Returns a new object of class 'All Instance Of Area'. + * + * + * @return a new object of class 'All Instance Of Area'. + * @generated + */ + AllInstanceOfArea createAllInstanceOfArea(); + + /** + * Returns a new object of class 'All Instance Of View Content'. + * + * + * @return a new object of class 'All Instance Of View Content'. + * @generated + */ + AllInstanceOfViewContent createAllInstanceOfViewContent(); + + /** + * Returns a new object of class 'Is Displayed On'. + * + * + * @return a new object of class 'Is Displayed On'. + * @generated + */ + IsDisplayedOn createIsDisplayedOn(); + + /** + * Returns a new object of class 'Is Changed Display'. + * + * + * @return a new object of class 'Is Changed Display'. + * @generated + */ + IsChangedDisplay createIsChangedDisplay(); + + /** + * Returns a new object of class 'Is Translated View To'. + * + * + * @return a new object of class 'Is Translated View To'. + * @generated + */ + IsTranslatedViewTo createIsTranslatedViewTo(); + + /** + * Returns a new object of class 'Hide Lower Priority'. + * + * + * @return a new object of class 'Hide Lower Priority'. + * @generated + */ + HideLowerPriority createHideLowerPriority(); + + /** + * Returns the package supported by this factory. + * + * + * @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; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @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. + * + * + * @generated + */ + String eNAME = "view"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.denso.com/ict/rba/view"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "RbaView"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + RBAViewPackage eINSTANCE = rba.view.impl.RBAViewPackageImpl.init(); + + /** + * The meta object id for the '{@link rba.view.impl.ViewContentImpl View Content}' class. + * + * + * @see rba.view.impl.ViewContentImpl + * @see rba.view.impl.RBAViewPackageImpl#getViewContent() + * @generated + */ + int VIEW_CONTENT = 0; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT__DESCRIPTION = RBACorePackage.CONTENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT__NAME = RBACorePackage.CONTENT__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT__TAGS = RBACorePackage.CONTENT__TAGS; + + /** + * The feature id for the 'Content Group' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT__CONTENT_GROUP = RBACorePackage.CONTENT__CONTENT_GROUP; + + /** + * The feature id for the 'Allocatable' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT__ALLOCATABLE = RBACorePackage.CONTENT__ALLOCATABLE; + + /** + * The feature id for the 'Loser Type' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT__LOSER_TYPE = RBACorePackage.CONTENT__LOSER_TYPE; + + /** + * The feature id for the 'States' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT__STATES = RBACorePackage.CONTENT__STATES; + + /** + * The feature id for the 'Size' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT__SIZE = RBACorePackage.CONTENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'View Content' class. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_FEATURE_COUNT = RBACorePackage.CONTENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Get Allocatable List' operation. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT___GET_ALLOCATABLE_LIST = RBACorePackage.CONTENT___GET_ALLOCATABLE_LIST; + + /** + * The operation id for the 'Collect Leaf Contents' operation. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT___COLLECT_LEAF_CONTENTS = RBACorePackage.CONTENT___COLLECT_LEAF_CONTENTS; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'View Content' class. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_OPERATION_COUNT = RBACorePackage.CONTENT_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.view.impl.ViewContentSetImpl View Content Set}' class. + * + * + * @see rba.view.impl.ViewContentSetImpl + * @see rba.view.impl.RBAViewPackageImpl#getViewContentSet() + * @generated + */ + int VIEW_CONTENT_SET = 1; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_SET__DESCRIPTION = RBACorePackage.CONTENT_SET__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_SET__NAME = RBACorePackage.CONTENT_SET__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_SET__TAGS = RBACorePackage.CONTENT_SET__TAGS; + + /** + * The feature id for the 'Content Group' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_SET__CONTENT_GROUP = RBACorePackage.CONTENT_SET__CONTENT_GROUP; + + /** + * The feature id for the 'Allocatable' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_SET__ALLOCATABLE = RBACorePackage.CONTENT_SET__ALLOCATABLE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_SET__TARGET = RBACorePackage.CONTENT_SET__TARGET; + + /** + * The number of structural features of the 'View Content Set' class. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_SET_FEATURE_COUNT = RBACorePackage.CONTENT_SET_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Allocatable List' operation. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_SET___GET_ALLOCATABLE_LIST = RBACorePackage.CONTENT_SET___GET_ALLOCATABLE_LIST; + + /** + * The operation id for the 'Collect Leaf Contents' operation. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_SET___COLLECT_LEAF_CONTENTS = RBACorePackage.CONTENT_SET___COLLECT_LEAF_CONTENTS; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_SET___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_SET_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'View Content Set' class. + * + * + * @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 View Content State}' class. + * + * + * @see rba.view.impl.ViewContentStateImpl + * @see rba.view.impl.RBAViewPackageImpl#getViewContentState() + * @generated + */ + int VIEW_CONTENT_STATE = 2; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_STATE__DESCRIPTION = RBACorePackage.CONTENT_STATE__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_STATE__NAME = RBACorePackage.CONTENT_STATE__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_STATE__TAGS = RBACorePackage.CONTENT_STATE__TAGS; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_STATE__VALUE = RBACorePackage.CONTENT_STATE__VALUE; + + /** + * The feature id for the 'Owner' container reference. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_STATE__OWNER = RBACorePackage.CONTENT_STATE__OWNER; + + /** + * The number of structural features of the 'View Content State' class. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_STATE_FEATURE_COUNT = RBACorePackage.CONTENT_STATE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_STATE___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_STATE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'View Content State' class. + * + * + * @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 Layout Manager}' class. + * + * + * @see rba.view.impl.LayoutManagerImpl + * @see rba.view.impl.RBAViewPackageImpl#getLayoutManager() + * @generated + */ + int LAYOUT_MANAGER = 3; + + /** + * The number of structural features of the 'Layout Manager' class. + * + * + * @generated + * @ordered + */ + int LAYOUT_MANAGER_FEATURE_COUNT = 0; + + /** + * The operation id for the 'Collect Leaf Area' operation. + * + * + * @generated + * @ordered + */ + int LAYOUT_MANAGER___COLLECT_LEAF_AREA = 0; + + /** + * The number of operations of the 'Layout Manager' class. + * + * + * @generated + * @ordered + */ + int LAYOUT_MANAGER_OPERATION_COUNT = 1; + + /** + * The meta object id for the '{@link rba.view.impl.AlignedLayoutImpl Aligned Layout}' class. + * + * + * @see rba.view.impl.AlignedLayoutImpl + * @see rba.view.impl.RBAViewPackageImpl#getAlignedLayout() + * @generated + */ + int ALIGNED_LAYOUT = 4; + + /** + * The feature id for the 'Subarea' reference list. + * + * + * @generated + * @ordered + */ + int ALIGNED_LAYOUT__SUBAREA = LAYOUT_MANAGER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Base Point' attribute. + * + * + * @generated + * @ordered + */ + int ALIGNED_LAYOUT__BASE_POINT = LAYOUT_MANAGER_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Aligned Layout' class. + * + * + * @generated + * @ordered + */ + int ALIGNED_LAYOUT_FEATURE_COUNT = LAYOUT_MANAGER_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Collect Leaf Area' operation. + * + * + * @generated + * @ordered + */ + int ALIGNED_LAYOUT___COLLECT_LEAF_AREA = LAYOUT_MANAGER_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Aligned Layout' class. + * + * + * @generated + * @ordered + */ + int ALIGNED_LAYOUT_OPERATION_COUNT = LAYOUT_MANAGER_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.view.impl.VerticalLayoutImpl Vertical Layout}' class. + * + * + * @see rba.view.impl.VerticalLayoutImpl + * @see rba.view.impl.RBAViewPackageImpl#getVerticalLayout() + * @generated + */ + int VERTICAL_LAYOUT = 5; + + /** + * The feature id for the 'Subarea' reference list. + * + * + * @generated + * @ordered + */ + int VERTICAL_LAYOUT__SUBAREA = ALIGNED_LAYOUT__SUBAREA; + + /** + * The feature id for the 'Base Point' attribute. + * + * + * @generated + * @ordered + */ + int VERTICAL_LAYOUT__BASE_POINT = ALIGNED_LAYOUT__BASE_POINT; + + /** + * The number of structural features of the 'Vertical Layout' class. + * + * + * @generated + * @ordered + */ + int VERTICAL_LAYOUT_FEATURE_COUNT = ALIGNED_LAYOUT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Collect Leaf Area' operation. + * + * + * @generated + * @ordered + */ + int VERTICAL_LAYOUT___COLLECT_LEAF_AREA = ALIGNED_LAYOUT___COLLECT_LEAF_AREA; + + /** + * The number of operations of the 'Vertical Layout' class. + * + * + * @generated + * @ordered + */ + int VERTICAL_LAYOUT_OPERATION_COUNT = ALIGNED_LAYOUT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.view.impl.HorizontalLayoutImpl Horizontal Layout}' class. + * + * + * @see rba.view.impl.HorizontalLayoutImpl + * @see rba.view.impl.RBAViewPackageImpl#getHorizontalLayout() + * @generated + */ + int HORIZONTAL_LAYOUT = 6; + + /** + * The feature id for the 'Subarea' reference list. + * + * + * @generated + * @ordered + */ + int HORIZONTAL_LAYOUT__SUBAREA = ALIGNED_LAYOUT__SUBAREA; + + /** + * The feature id for the 'Base Point' attribute. + * + * + * @generated + * @ordered + */ + int HORIZONTAL_LAYOUT__BASE_POINT = ALIGNED_LAYOUT__BASE_POINT; + + /** + * The number of structural features of the 'Horizontal Layout' class. + * + * + * @generated + * @ordered + */ + int HORIZONTAL_LAYOUT_FEATURE_COUNT = ALIGNED_LAYOUT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Collect Leaf Area' operation. + * + * + * @generated + * @ordered + */ + int HORIZONTAL_LAYOUT___COLLECT_LEAF_AREA = ALIGNED_LAYOUT___COLLECT_LEAF_AREA; + + /** + * The number of operations of the 'Horizontal Layout' class. + * + * + * @generated + * @ordered + */ + int HORIZONTAL_LAYOUT_OPERATION_COUNT = ALIGNED_LAYOUT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.view.impl.FixedPositionLayoutImpl Fixed Position Layout}' class. + * + * + * @see rba.view.impl.FixedPositionLayoutImpl + * @see rba.view.impl.RBAViewPackageImpl#getFixedPositionLayout() + * @generated + */ + int FIXED_POSITION_LAYOUT = 7; + + /** + * The feature id for the 'Sub Area Position' containment reference list. + * + * + * @generated + * @ordered + */ + int FIXED_POSITION_LAYOUT__SUB_AREA_POSITION = LAYOUT_MANAGER_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Fixed Position Layout' class. + * + * + * @generated + * @ordered + */ + int FIXED_POSITION_LAYOUT_FEATURE_COUNT = LAYOUT_MANAGER_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Collect Leaf Area' operation. + * + * + * @generated + * @ordered + */ + int FIXED_POSITION_LAYOUT___COLLECT_LEAF_AREA = LAYOUT_MANAGER_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Fixed Position Layout' class. + * + * + * @generated + * @ordered + */ + int FIXED_POSITION_LAYOUT_OPERATION_COUNT = LAYOUT_MANAGER_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.view.impl.PositionContainerImpl Position Container}' class. + * + * + * @see rba.view.impl.PositionContainerImpl + * @see rba.view.impl.RBAViewPackageImpl#getPositionContainer() + * @generated + */ + int POSITION_CONTAINER = 8; + + /** + * The feature id for the 'X' attribute. + * + * + * @generated + * @ordered + */ + int POSITION_CONTAINER__X = 0; + + /** + * The feature id for the 'Y' attribute. + * + * + * @generated + * @ordered + */ + int POSITION_CONTAINER__Y = 1; + + /** + * The feature id for the 'Base Point' attribute. + * + * + * @generated + * @ordered + */ + int POSITION_CONTAINER__BASE_POINT = 2; + + /** + * The feature id for the 'Area' reference. + * + * + * @generated + * @ordered + */ + int POSITION_CONTAINER__AREA = 3; + + /** + * The feature id for the 'Offset' containment reference list. + * + * + * @generated + * @ordered + */ + int POSITION_CONTAINER__OFFSET = 4; + + /** + * The number of structural features of the 'Position Container' class. + * + * + * @generated + * @ordered + */ + int POSITION_CONTAINER_FEATURE_COUNT = 5; + + /** + * The number of operations of the 'Position Container' class. + * + * + * @generated + * @ordered + */ + int POSITION_CONTAINER_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link rba.view.impl.DisplayImpl Display}' class. + * + * + * @see rba.view.impl.DisplayImpl + * @see rba.view.impl.RBAViewPackageImpl#getDisplay() + * @generated + */ + int DISPLAY = 9; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int DISPLAY__DESCRIPTION = RBACorePackage.PACKAGABLE_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DISPLAY__NAME = RBACorePackage.PACKAGABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Root' containment reference. + * + * + * @generated + * @ordered + */ + int DISPLAY__ROOT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Size' containment reference. + * + * + * @generated + * @ordered + */ + int DISPLAY__SIZE = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Display' class. + * + * + * @generated + * @ordered + */ + int DISPLAY_FEATURE_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of operations of the 'Display' class. + * + * + * @generated + * @ordered + */ + int DISPLAY_OPERATION_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.view.impl.CompositeAreaImpl Composite Area}' class. + * + * + * @see rba.view.impl.CompositeAreaImpl + * @see rba.view.impl.RBAViewPackageImpl#getCompositeArea() + * @generated + */ + int COMPOSITE_AREA = 10; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int COMPOSITE_AREA__DESCRIPTION = RBACorePackage.PACKAGABLE_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPOSITE_AREA__NAME = RBACorePackage.PACKAGABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Layout' containment reference. + * + * + * @generated + * @ordered + */ + int COMPOSITE_AREA__LAYOUT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Composite Area' class. + * + * + * @generated + * @ordered + */ + int COMPOSITE_AREA_FEATURE_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Collect Leaf Area' operation. + * + * + * @generated + * @ordered + */ + int COMPOSITE_AREA___COLLECT_LEAF_AREA = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int COMPOSITE_AREA___GET_EXPRESSION_TYPE = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Composite Area' class. + * + * + * @generated + * @ordered + */ + int COMPOSITE_AREA_OPERATION_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.view.impl.AreaImpl Area}' class. + * + * + * @see rba.view.impl.AreaImpl + * @see rba.view.impl.RBAViewPackageImpl#getArea() + * @generated + */ + int AREA = 11; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int AREA__DESCRIPTION = RBACorePackage.ALLOCATABLE__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int AREA__NAME = RBACorePackage.ALLOCATABLE__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int AREA__TAGS = RBACorePackage.ALLOCATABLE__TAGS; + + /** + * The feature id for the 'Contents' reference list. + * + * + * @generated + * @ordered + */ + int AREA__CONTENTS = RBACorePackage.ALLOCATABLE__CONTENTS; + + /** + * The feature id for the 'Allocatable Group' reference list. + * + * + * @generated + * @ordered + */ + int AREA__ALLOCATABLE_GROUP = RBACorePackage.ALLOCATABLE__ALLOCATABLE_GROUP; + + /** + * The feature id for the 'Arbitration Policy' attribute. + * + * + * @generated + * @ordered + */ + int AREA__ARBITRATION_POLICY = RBACorePackage.ALLOCATABLE__ARBITRATION_POLICY; + + /** + * The feature id for the 'Visibility' containment reference. + * + * + * @generated + * @ordered + */ + int AREA__VISIBILITY = RBACorePackage.ALLOCATABLE__VISIBILITY; + + /** + * The feature id for the 'Zorder' containment reference. + * + * + * @generated + * @ordered + */ + int AREA__ZORDER = RBACorePackage.ALLOCATABLE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Size' containment reference list. + * + * + * @generated + * @ordered + */ + int AREA__SIZE = RBACorePackage.ALLOCATABLE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Area' class. + * + * + * @generated + * @ordered + */ + int AREA_FEATURE_COUNT = RBACorePackage.ALLOCATABLE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Get Contents List' operation. + * + * + * @generated + * @ordered + */ + int AREA___GET_CONTENTS_LIST = RBACorePackage.ALLOCATABLE___GET_CONTENTS_LIST; + + /** + * The operation id for the 'Collect Leaf Allocatable' operation. + * + * + * @generated + * @ordered + */ + int AREA___COLLECT_LEAF_ALLOCATABLE = RBACorePackage.ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int AREA___GET_EXPRESSION_TYPE = RBACorePackage.ALLOCATABLE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Area' class. + * + * + * @generated + * @ordered + */ + int AREA_OPERATION_COUNT = RBACorePackage.ALLOCATABLE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.view.impl.AreaSetImpl Area Set}' class. + * + * + * @see rba.view.impl.AreaSetImpl + * @see rba.view.impl.RBAViewPackageImpl#getAreaSet() + * @generated + */ + int AREA_SET = 12; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int AREA_SET__DESCRIPTION = RBACorePackage.ALLOCATABLE_SET__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int AREA_SET__NAME = RBACorePackage.ALLOCATABLE_SET__NAME; + + /** + * The feature id for the 'Tags' containment reference list. + * + * + * @generated + * @ordered + */ + int AREA_SET__TAGS = RBACorePackage.ALLOCATABLE_SET__TAGS; + + /** + * The feature id for the 'Contents' reference list. + * + * + * @generated + * @ordered + */ + int AREA_SET__CONTENTS = RBACorePackage.ALLOCATABLE_SET__CONTENTS; + + /** + * The feature id for the 'Allocatable Group' reference list. + * + * + * @generated + * @ordered + */ + int AREA_SET__ALLOCATABLE_GROUP = RBACorePackage.ALLOCATABLE_SET__ALLOCATABLE_GROUP; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int AREA_SET__TARGET = RBACorePackage.ALLOCATABLE_SET__TARGET; + + /** + * The number of structural features of the 'Area Set' class. + * + * + * @generated + * @ordered + */ + int AREA_SET_FEATURE_COUNT = RBACorePackage.ALLOCATABLE_SET_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Contents List' operation. + * + * + * @generated + * @ordered + */ + int AREA_SET___GET_CONTENTS_LIST = RBACorePackage.ALLOCATABLE_SET___GET_CONTENTS_LIST; + + /** + * The operation id for the 'Collect Leaf Allocatable' operation. + * + * + * @generated + * @ordered + */ + int AREA_SET___COLLECT_LEAF_ALLOCATABLE = RBACorePackage.ALLOCATABLE_SET___COLLECT_LEAF_ALLOCATABLE; + + /** + * The operation id for the 'Get Expression Type' operation. + * + * + * @generated + * @ordered + */ + int AREA_SET___GET_EXPRESSION_TYPE = RBACorePackage.ALLOCATABLE_SET_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Area Set' class. + * + * + * @generated + * @ordered + */ + int AREA_SET_OPERATION_COUNT = RBACorePackage.ALLOCATABLE_SET_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.view.impl.SizeIdentifierImpl Size Identifier}' class. + * + * + * @see rba.view.impl.SizeIdentifierImpl + * @see rba.view.impl.RBAViewPackageImpl#getSizeIdentifier() + * @generated + */ + int SIZE_IDENTIFIER = 13; + + /** + * The number of structural features of the 'Size Identifier' class. + * + * + * @generated + * @ordered + */ + int SIZE_IDENTIFIER_FEATURE_COUNT = 0; + + /** + * The number of operations of the 'Size Identifier' class. + * + * + * @generated + * @ordered + */ + int SIZE_IDENTIFIER_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link rba.view.impl.SizeImpl Size}' class. + * + * + * @see rba.view.impl.SizeImpl + * @see rba.view.impl.RBAViewPackageImpl#getSize() + * @generated + */ + int SIZE = 14; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int SIZE__DESCRIPTION = RBACorePackage.PACKAGABLE_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SIZE__NAME = RBACorePackage.PACKAGABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Width' attribute. + * + * + * @generated + * @ordered + */ + int SIZE__WIDTH = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Height' attribute. + * + * + * @generated + * @ordered + */ + int SIZE__HEIGHT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Size' class. + * + * + * @generated + * @ordered + */ + int SIZE_FEATURE_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of operations of the 'Size' class. + * + * + * @generated + * @ordered + */ + int SIZE_OPERATION_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.view.impl.SizeReferenceImpl Size Reference}' class. + * + * + * @see rba.view.impl.SizeReferenceImpl + * @see rba.view.impl.RBAViewPackageImpl#getSizeReference() + * @generated + */ + int SIZE_REFERENCE = 15; + + /** + * The feature id for the 'Size' reference. + * + * + * @generated + * @ordered + */ + int SIZE_REFERENCE__SIZE = SIZE_IDENTIFIER_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Size Reference' class. + * + * + * @generated + * @ordered + */ + int SIZE_REFERENCE_FEATURE_COUNT = SIZE_IDENTIFIER_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Size Reference' class. + * + * + * @generated + * @ordered + */ + int SIZE_REFERENCE_OPERATION_COUNT = SIZE_IDENTIFIER_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.view.impl.OffsetImpl Offset}' class. + * + * + * @see rba.view.impl.OffsetImpl + * @see rba.view.impl.RBAViewPackageImpl#getOffset() + * @generated + */ + int OFFSET = 16; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int OFFSET__DESCRIPTION = RBACorePackage.PACKAGABLE_ELEMENT__DESCRIPTION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OFFSET__NAME = RBACorePackage.PACKAGABLE_ELEMENT__NAME; + + /** + * The feature id for the 'X' attribute. + * + * + * @generated + * @ordered + */ + int OFFSET__X = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Y' attribute. + * + * + * @generated + * @ordered + */ + int OFFSET__Y = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Size' containment reference. + * + * + * @generated + * @ordered + */ + int OFFSET__SIZE = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Offset' class. + * + * + * @generated + * @ordered + */ + int OFFSET_FEATURE_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The number of operations of the 'Offset' class. + * + * + * @generated + * @ordered + */ + int OFFSET_OPERATION_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.view.impl.AreaOperatorImpl Area Operator}' class. + * + * + * @see rba.view.impl.AreaOperatorImpl + * @see rba.view.impl.RBAViewPackageImpl#getAreaOperator() + * @generated + */ + int AREA_OPERATOR = 17; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int AREA_OPERATOR__TYPE = RBACorePackage.ALLOCATABLE_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int AREA_OPERATOR__EXPRESSION = RBACorePackage.ALLOCATABLE_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int AREA_OPERATOR__LET_STATEMENTS = RBACorePackage.ALLOCATABLE_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int AREA_OPERATOR__OPERAND = RBACorePackage.ALLOCATABLE_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Area Operator' class. + * + * + * @generated + * @ordered + */ + int AREA_OPERATOR_FEATURE_COUNT = RBACorePackage.ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int AREA_OPERATOR___GET_UNDERLYING_TYPE = RBACorePackage.ALLOCATABLE_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int AREA_OPERATOR___GET_SYMBOL = RBACorePackage.ALLOCATABLE_OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int AREA_OPERATOR___GET_EXPRESSION_TEXT = RBACorePackage.ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The number of operations of the 'Area Operator' class. + * + * + * @generated + * @ordered + */ + int AREA_OPERATOR_OPERATION_COUNT = RBACorePackage.ALLOCATABLE_OPERATOR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link rba.view.impl.IsDisplayedImpl Is Displayed}' class. + * + * + * @see rba.view.impl.IsDisplayedImpl + * @see rba.view.impl.RBAViewPackageImpl#getIsDisplayed() + * @generated + */ + int IS_DISPLAYED = 18; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED__TYPE = AREA_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED__EXPRESSION = AREA_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED__LET_STATEMENTS = AREA_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED__OPERAND = AREA_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Displayed' class. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_FEATURE_COUNT = AREA_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED___GET_EXPRESSION_TEXT = AREA_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED___GET_SYMBOL = AREA_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED___GET_UNDERLYING_TYPE = AREA_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Is Displayed' class. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_OPERATION_COUNT = AREA_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.view.impl.DisplayingContentImpl Displaying Content}' class. + * + * + * @see rba.view.impl.DisplayingContentImpl + * @see rba.view.impl.RBAViewPackageImpl#getDisplayingContent() + * @generated + */ + int DISPLAYING_CONTENT = 19; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int DISPLAYING_CONTENT__TYPE = AREA_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int DISPLAYING_CONTENT__EXPRESSION = AREA_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int DISPLAYING_CONTENT__LET_STATEMENTS = AREA_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int DISPLAYING_CONTENT__OPERAND = AREA_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Displaying Content' class. + * + * + * @generated + * @ordered + */ + int DISPLAYING_CONTENT_FEATURE_COUNT = AREA_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int DISPLAYING_CONTENT___GET_EXPRESSION_TEXT = AREA_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int DISPLAYING_CONTENT___GET_SYMBOL = AREA_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int DISPLAYING_CONTENT___GET_UNDERLYING_TYPE = AREA_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Displaying Content' class. + * + * + * @generated + * @ordered + */ + int DISPLAYING_CONTENT_OPERATION_COUNT = AREA_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.view.impl.IsHiddenImpl Is Hidden}' class. + * + * + * @see rba.view.impl.IsHiddenImpl + * @see rba.view.impl.RBAViewPackageImpl#getIsHidden() + * @generated + */ + int IS_HIDDEN = 20; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_HIDDEN__TYPE = AREA_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_HIDDEN__EXPRESSION = AREA_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_HIDDEN__LET_STATEMENTS = AREA_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_HIDDEN__OPERAND = AREA_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Hidden' class. + * + * + * @generated + * @ordered + */ + int IS_HIDDEN_FEATURE_COUNT = AREA_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_HIDDEN___GET_EXPRESSION_TEXT = AREA_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_HIDDEN___GET_SYMBOL = AREA_OPERATOR_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_HIDDEN___GET_UNDERLYING_TYPE = AREA_OPERATOR_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Is Hidden' class. + * + * + * @generated + * @ordered + */ + int IS_HIDDEN_OPERATION_COUNT = AREA_OPERATOR_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link rba.view.impl.ViewContentOperatorImpl View Content Operator}' class. + * + * + * @see rba.view.impl.ViewContentOperatorImpl + * @see rba.view.impl.RBAViewPackageImpl#getViewContentOperator() + * @generated + */ + int VIEW_CONTENT_OPERATOR = 21; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_OPERATOR__TYPE = RBACorePackage.CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_OPERATOR__EXPRESSION = RBACorePackage.CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_OPERATOR__LET_STATEMENTS = RBACorePackage.CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_OPERATOR__OPERAND = RBACorePackage.CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'View Content Operator' class. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_OPERATOR_FEATURE_COUNT = RBACorePackage.CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_OPERATOR___GET_SYMBOL = RBACorePackage.CONTENT_OPERATOR___GET_SYMBOL; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_OPERATOR___GET_EXPRESSION_TEXT = RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int VIEW_CONTENT_OPERATOR___GET_UNDERLYING_TYPE = RBACorePackage.CONTENT_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'View Content Operator' class. + * + * + * @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 Is Visible}' class. + * + * + * @see rba.view.impl.IsVisibleImpl + * @see rba.view.impl.RBAViewPackageImpl#getIsVisible() + * @generated + */ + int IS_VISIBLE = 22; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_VISIBLE__TYPE = VIEW_CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_VISIBLE__EXPRESSION = VIEW_CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_VISIBLE__LET_STATEMENTS = VIEW_CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_VISIBLE__OPERAND = VIEW_CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Visible' class. + * + * + * @generated + * @ordered + */ + int IS_VISIBLE_FEATURE_COUNT = VIEW_CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_VISIBLE___GET_EXPRESSION_TEXT = VIEW_CONTENT_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_VISIBLE___GET_UNDERLYING_TYPE = VIEW_CONTENT_OPERATOR___GET_UNDERLYING_TYPE; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_VISIBLE___GET_SYMBOL = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Is Visible' class. + * + * + * @generated + * @ordered + */ + int IS_VISIBLE_OPERATION_COUNT = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link rba.view.impl.AllInstanceOfAreaImpl All Instance Of Area}' class. + * + * + * @see rba.view.impl.AllInstanceOfAreaImpl + * @see rba.view.impl.RBAViewPackageImpl#getAllInstanceOfArea() + * @generated + */ + int ALL_INSTANCE_OF_AREA = 23; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_AREA__TYPE = RBACorePackage.SET_EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_AREA__EXPRESSION = RBACorePackage.SET_EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_AREA__LET_STATEMENTS = RBACorePackage.SET_EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'All Instance Of Area' class. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_AREA_FEATURE_COUNT = RBACorePackage.SET_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_AREA___GET_EXPRESSION_TEXT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_AREA___GET_UNDERLYING_TYPE = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'All Instance Of Area' class. + * + * + * @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 All Instance Of View Content}' class. + * + * + * @see rba.view.impl.AllInstanceOfViewContentImpl + * @see rba.view.impl.RBAViewPackageImpl#getAllInstanceOfViewContent() + * @generated + */ + int ALL_INSTANCE_OF_VIEW_CONTENT = 24; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_VIEW_CONTENT__TYPE = RBACorePackage.SET_EXPRESSION__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_VIEW_CONTENT__EXPRESSION = RBACorePackage.SET_EXPRESSION__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_VIEW_CONTENT__LET_STATEMENTS = RBACorePackage.SET_EXPRESSION__LET_STATEMENTS; + + /** + * The number of structural features of the 'All Instance Of View Content' class. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_VIEW_CONTENT_FEATURE_COUNT = RBACorePackage.SET_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_VIEW_CONTENT___GET_EXPRESSION_TEXT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int ALL_INSTANCE_OF_VIEW_CONTENT___GET_UNDERLYING_TYPE = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'All Instance Of View Content' class. + * + * + * @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 Is Displayed On}' class. + * + * + * @see rba.view.impl.IsDisplayedOnImpl + * @see rba.view.impl.RBAViewPackageImpl#getIsDisplayedOn() + * @generated + */ + int IS_DISPLAYED_ON = 25; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_ON__TYPE = VIEW_CONTENT_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_ON__EXPRESSION = VIEW_CONTENT_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_ON__LET_STATEMENTS = VIEW_CONTENT_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_ON__OPERAND = VIEW_CONTENT_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Displayed On' class. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_ON_FEATURE_COUNT = VIEW_CONTENT_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_ON___GET_EXPANDED = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_ON___CAN_EXPAND = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_ON___GET_SYMBOL = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_ON___GET_UNDERLYING_TYPE = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_DISPLAYED_ON___GET_EXPRESSION_TEXT = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 5; + + /** + * The number of operations of the 'Is Displayed On' class. + * + * + * @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 Is Changed Display}' class. + * + * + * @see rba.view.impl.IsChangedDisplayImpl + * @see rba.view.impl.RBAViewPackageImpl#getIsChangedDisplay() + * @generated + */ + int IS_CHANGED_DISPLAY = 26; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_DISPLAY__TYPE = AREA_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_DISPLAY__EXPRESSION = AREA_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_DISPLAY__LET_STATEMENTS = AREA_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_DISPLAY__OPERAND = AREA_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Changed Display' class. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_DISPLAY_FEATURE_COUNT = AREA_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_DISPLAY___GET_EXPRESSION_TEXT = AREA_OPERATOR___GET_EXPRESSION_TEXT; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_DISPLAY___GET_EXPANDED = AREA_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_DISPLAY___CAN_EXPAND = AREA_OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_DISPLAY___GET_SYMBOL = AREA_OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_DISPLAY___GET_UNDERLYING_TYPE = AREA_OPERATOR_OPERATION_COUNT + 4; + + /** + * The number of operations of the 'Is Changed Display' class. + * + * + * @generated + * @ordered + */ + int IS_CHANGED_DISPLAY_OPERATION_COUNT = AREA_OPERATOR_OPERATION_COUNT + 5; + + /** + * The meta object id for the '{@link rba.view.impl.IsTranslatedViewToImpl Is Translated View To}' class. + * + * + * @see rba.view.impl.IsTranslatedViewToImpl + * @see rba.view.impl.RBAViewPackageImpl#getIsTranslatedViewTo() + * @generated + */ + int IS_TRANSLATED_VIEW_TO = 27; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_VIEW_TO__TYPE = AREA_OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_VIEW_TO__EXPRESSION = AREA_OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_VIEW_TO__LET_STATEMENTS = AREA_OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_VIEW_TO__OPERAND = AREA_OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Is Translated View To' class. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_VIEW_TO_FEATURE_COUNT = AREA_OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_VIEW_TO___GET_EXPANDED = AREA_OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_VIEW_TO___CAN_EXPAND = AREA_OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_VIEW_TO___GET_SYMBOL = AREA_OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_VIEW_TO___GET_UNDERLYING_TYPE = AREA_OPERATOR_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int IS_TRANSLATED_VIEW_TO___GET_EXPRESSION_TEXT = AREA_OPERATOR_OPERATION_COUNT + 5; + + /** + * The number of operations of the 'Is Translated View To' class. + * + * + * @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 Hide Lower Priority}' class. + * + * + * @see rba.view.impl.HideLowerPriorityImpl + * @see rba.view.impl.RBAViewPackageImpl#getHideLowerPriority() + * @generated + */ + int HIDE_LOWER_PRIORITY = 28; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int HIDE_LOWER_PRIORITY__TYPE = RBACorePackage.OPERATOR__TYPE; + + /** + * The feature id for the 'Expression' attribute. + * + * + * @generated + * @ordered + */ + int HIDE_LOWER_PRIORITY__EXPRESSION = RBACorePackage.OPERATOR__EXPRESSION; + + /** + * The feature id for the 'Let Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int HIDE_LOWER_PRIORITY__LET_STATEMENTS = RBACorePackage.OPERATOR__LET_STATEMENTS; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int HIDE_LOWER_PRIORITY__OPERAND = RBACorePackage.OPERATOR__OPERAND; + + /** + * The number of structural features of the 'Hide Lower Priority' class. + * + * + * @generated + * @ordered + */ + int HIDE_LOWER_PRIORITY_FEATURE_COUNT = RBACorePackage.OPERATOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Get Expanded' operation. + * + * + * @generated + * @ordered + */ + int HIDE_LOWER_PRIORITY___GET_EXPANDED = RBACorePackage.OPERATOR_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Expand' operation. + * + * + * @generated + * @ordered + */ + int HIDE_LOWER_PRIORITY___CAN_EXPAND = RBACorePackage.OPERATOR_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Get Symbol' operation. + * + * + * @generated + * @ordered + */ + int HIDE_LOWER_PRIORITY___GET_SYMBOL = RBACorePackage.OPERATOR_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Get Underlying Type' operation. + * + * + * @generated + * @ordered + */ + int HIDE_LOWER_PRIORITY___GET_UNDERLYING_TYPE = RBACorePackage.OPERATOR_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Get Expression Text' operation. + * + * + * @generated + * @ordered + */ + int HIDE_LOWER_PRIORITY___GET_EXPRESSION_TEXT = RBACorePackage.OPERATOR_OPERATION_COUNT + 5; + + /** + * The number of operations of the 'Hide Lower Priority' class. + * + * + * @generated + * @ordered + */ + int HIDE_LOWER_PRIORITY_OPERATION_COUNT = RBACorePackage.OPERATOR_OPERATION_COUNT + 6; + + /** + * The meta object id for the '{@link rba.view.BasePoint Base Point}' enum. + * + * + * @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 View Content}'. + * + * + * @return the meta object for class 'View Content'. + * @see rba.view.ViewContent + * @generated + */ + EClass getViewContent(); + + /** + * Returns the meta object for the containment reference list '{@link rba.view.ViewContent#getSize Size}'. + * + * + * @return the meta object for the containment reference list 'Size'. + * @see rba.view.ViewContent#getSize() + * @see #getViewContent() + * @generated + */ + EReference getViewContent_Size(); + + /** + * Returns the meta object for the '{@link rba.view.ViewContent#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.view.ViewContent#getExpressionType() + * @generated + */ + EOperation getViewContent__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.view.ViewContentSet View Content Set}'. + * + * + * @return the meta object for class 'View Content Set'. + * @see rba.view.ViewContentSet + * @generated + */ + EClass getViewContentSet(); + + /** + * Returns the meta object for the '{@link rba.view.ViewContentSet#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.view.ViewContentSet#getExpressionType() + * @generated + */ + EOperation getViewContentSet__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.view.ViewContentState View Content State}'. + * + * + * @return the meta object for class 'View Content State'. + * @see rba.view.ViewContentState + * @generated + */ + EClass getViewContentState(); + + /** + * Returns the meta object for the '{@link rba.view.ViewContentState#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.view.ViewContentState#getExpressionType() + * @generated + */ + EOperation getViewContentState__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.view.LayoutManager Layout Manager}'. + * + * + * @return the meta object for class 'Layout Manager'. + * @see rba.view.LayoutManager + * @generated + */ + EClass getLayoutManager(); + + /** + * Returns the meta object for the '{@link rba.view.LayoutManager#collectLeafArea() Collect Leaf Area}' operation. + * + * + * @return the meta object for the 'Collect Leaf Area' operation. + * @see rba.view.LayoutManager#collectLeafArea() + * @generated + */ + EOperation getLayoutManager__CollectLeafArea(); + + /** + * Returns the meta object for class '{@link rba.view.AlignedLayout Aligned Layout}'. + * + * + * @return the meta object for class 'Aligned Layout'. + * @see rba.view.AlignedLayout + * @generated + */ + EClass getAlignedLayout(); + + /** + * Returns the meta object for the reference list '{@link rba.view.AlignedLayout#getSubarea Subarea}'. + * + * + * @return the meta object for the reference list 'Subarea'. + * @see rba.view.AlignedLayout#getSubarea() + * @see #getAlignedLayout() + * @generated + */ + EReference getAlignedLayout_Subarea(); + + /** + * Returns the meta object for the attribute '{@link rba.view.AlignedLayout#getBasePoint Base Point}'. + * + * + * @return the meta object for the attribute 'Base Point'. + * @see rba.view.AlignedLayout#getBasePoint() + * @see #getAlignedLayout() + * @generated + */ + EAttribute getAlignedLayout_BasePoint(); + + /** + * Returns the meta object for the '{@link rba.view.AlignedLayout#collectLeafArea() Collect Leaf Area}' operation. + * + * + * @return the meta object for the 'Collect Leaf Area' operation. + * @see rba.view.AlignedLayout#collectLeafArea() + * @generated + */ + EOperation getAlignedLayout__CollectLeafArea(); + + /** + * Returns the meta object for class '{@link rba.view.VerticalLayout Vertical Layout}'. + * + * + * @return the meta object for class 'Vertical Layout'. + * @see rba.view.VerticalLayout + * @generated + */ + EClass getVerticalLayout(); + + /** + * Returns the meta object for class '{@link rba.view.HorizontalLayout Horizontal Layout}'. + * + * + * @return the meta object for class 'Horizontal Layout'. + * @see rba.view.HorizontalLayout + * @generated + */ + EClass getHorizontalLayout(); + + /** + * Returns the meta object for class '{@link rba.view.FixedPositionLayout Fixed Position Layout}'. + * + * + * @return the meta object for class 'Fixed Position Layout'. + * @see rba.view.FixedPositionLayout + * @generated + */ + EClass getFixedPositionLayout(); + + /** + * Returns the meta object for the containment reference list '{@link rba.view.FixedPositionLayout#getSubAreaPosition Sub Area Position}'. + * + * + * @return the meta object for the containment reference list 'Sub Area Position'. + * @see rba.view.FixedPositionLayout#getSubAreaPosition() + * @see #getFixedPositionLayout() + * @generated + */ + EReference getFixedPositionLayout_SubAreaPosition(); + + /** + * Returns the meta object for the '{@link rba.view.FixedPositionLayout#collectLeafArea() Collect Leaf Area}' operation. + * + * + * @return the meta object for the 'Collect Leaf Area' operation. + * @see rba.view.FixedPositionLayout#collectLeafArea() + * @generated + */ + EOperation getFixedPositionLayout__CollectLeafArea(); + + /** + * Returns the meta object for class '{@link rba.view.PositionContainer Position Container}'. + * + * + * @return the meta object for class 'Position Container'. + * @see rba.view.PositionContainer + * @generated + */ + EClass getPositionContainer(); + + /** + * Returns the meta object for the attribute '{@link rba.view.PositionContainer#getX X}'. + * + * + * @return the meta object for the attribute 'X'. + * @see rba.view.PositionContainer#getX() + * @see #getPositionContainer() + * @generated + */ + EAttribute getPositionContainer_X(); + + /** + * Returns the meta object for the attribute '{@link rba.view.PositionContainer#getY Y}'. + * + * + * @return the meta object for the attribute 'Y'. + * @see rba.view.PositionContainer#getY() + * @see #getPositionContainer() + * @generated + */ + EAttribute getPositionContainer_Y(); + + /** + * Returns the meta object for the attribute '{@link rba.view.PositionContainer#getBasePoint Base Point}'. + * + * + * @return the meta object for the attribute 'Base Point'. + * @see rba.view.PositionContainer#getBasePoint() + * @see #getPositionContainer() + * @generated + */ + EAttribute getPositionContainer_BasePoint(); + + /** + * Returns the meta object for the reference '{@link rba.view.PositionContainer#getArea Area}'. + * + * + * @return the meta object for the reference 'Area'. + * @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 Offset}'. + * + * + * @return the meta object for the containment reference list 'Offset'. + * @see rba.view.PositionContainer#getOffset() + * @see #getPositionContainer() + * @generated + */ + EReference getPositionContainer_Offset(); + + /** + * Returns the meta object for class '{@link rba.view.Display Display}'. + * + * + * @return the meta object for class 'Display'. + * @see rba.view.Display + * @generated + */ + EClass getDisplay(); + + /** + * Returns the meta object for the containment reference '{@link rba.view.Display#getRoot Root}'. + * + * + * @return the meta object for the containment reference 'Root'. + * @see rba.view.Display#getRoot() + * @see #getDisplay() + * @generated + */ + EReference getDisplay_Root(); + + /** + * Returns the meta object for the containment reference '{@link rba.view.Display#getSize Size}'. + * + * + * @return the meta object for the containment reference 'Size'. + * @see rba.view.Display#getSize() + * @see #getDisplay() + * @generated + */ + EReference getDisplay_Size(); + + /** + * Returns the meta object for class '{@link rba.view.CompositeArea Composite Area}'. + * + * + * @return the meta object for class 'Composite Area'. + * @see rba.view.CompositeArea + * @generated + */ + EClass getCompositeArea(); + + /** + * Returns the meta object for the containment reference '{@link rba.view.CompositeArea#getLayout Layout}'. + * + * + * @return the meta object for the containment reference 'Layout'. + * @see rba.view.CompositeArea#getLayout() + * @see #getCompositeArea() + * @generated + */ + EReference getCompositeArea_Layout(); + + /** + * Returns the meta object for the '{@link rba.view.CompositeArea#collectLeafArea() Collect Leaf Area}' operation. + * + * + * @return the meta object for the 'Collect Leaf Area' operation. + * @see rba.view.CompositeArea#collectLeafArea() + * @generated + */ + EOperation getCompositeArea__CollectLeafArea(); + + /** + * Returns the meta object for the '{@link rba.view.CompositeArea#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.view.CompositeArea#getExpressionType() + * @generated + */ + EOperation getCompositeArea__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.view.Area Area}'. + * + * + * @return the meta object for class 'Area'. + * @see rba.view.Area + * @generated + */ + EClass getArea(); + + /** + * Returns the meta object for the containment reference '{@link rba.view.Area#getZorder Zorder}'. + * + * + * @return the meta object for the containment reference 'Zorder'. + * @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 Size}'. + * + * + * @return the meta object for the containment reference list 'Size'. + * @see rba.view.Area#getSize() + * @see #getArea() + * @generated + */ + EReference getArea_Size(); + + /** + * Returns the meta object for the '{@link rba.view.Area#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.view.Area#getExpressionType() + * @generated + */ + EOperation getArea__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.view.AreaSet Area Set}'. + * + * + * @return the meta object for class 'Area Set'. + * @see rba.view.AreaSet + * @generated + */ + EClass getAreaSet(); + + /** + * Returns the meta object for the '{@link rba.view.AreaSet#getExpressionType() Get Expression Type}' operation. + * + * + * @return the meta object for the 'Get Expression Type' operation. + * @see rba.view.AreaSet#getExpressionType() + * @generated + */ + EOperation getAreaSet__GetExpressionType(); + + /** + * Returns the meta object for class '{@link rba.view.SizeIdentifier Size Identifier}'. + * + * + * @return the meta object for class 'Size Identifier'. + * @see rba.view.SizeIdentifier + * @generated + */ + EClass getSizeIdentifier(); + + /** + * Returns the meta object for class '{@link rba.view.Size Size}'. + * + * + * @return the meta object for class 'Size'. + * @see rba.view.Size + * @generated + */ + EClass getSize(); + + /** + * Returns the meta object for the attribute '{@link rba.view.Size#getWidth Width}'. + * + * + * @return the meta object for the attribute 'Width'. + * @see rba.view.Size#getWidth() + * @see #getSize() + * @generated + */ + EAttribute getSize_Width(); + + /** + * Returns the meta object for the attribute '{@link rba.view.Size#getHeight Height}'. + * + * + * @return the meta object for the attribute 'Height'. + * @see rba.view.Size#getHeight() + * @see #getSize() + * @generated + */ + EAttribute getSize_Height(); + + /** + * Returns the meta object for class '{@link rba.view.SizeReference Size Reference}'. + * + * + * @return the meta object for class 'Size Reference'. + * @see rba.view.SizeReference + * @generated + */ + EClass getSizeReference(); + + /** + * Returns the meta object for the reference '{@link rba.view.SizeReference#getSize Size}'. + * + * + * @return the meta object for the reference 'Size'. + * @see rba.view.SizeReference#getSize() + * @see #getSizeReference() + * @generated + */ + EReference getSizeReference_Size(); + + /** + * Returns the meta object for class '{@link rba.view.Offset Offset}'. + * + * + * @return the meta object for class 'Offset'. + * @see rba.view.Offset + * @generated + */ + EClass getOffset(); + + /** + * Returns the meta object for the attribute '{@link rba.view.Offset#getX X}'. + * + * + * @return the meta object for the attribute 'X'. + * @see rba.view.Offset#getX() + * @see #getOffset() + * @generated + */ + EAttribute getOffset_X(); + + /** + * Returns the meta object for the attribute '{@link rba.view.Offset#getY Y}'. + * + * + * @return the meta object for the attribute 'Y'. + * @see rba.view.Offset#getY() + * @see #getOffset() + * @generated + */ + EAttribute getOffset_Y(); + + /** + * Returns the meta object for the containment reference '{@link rba.view.Offset#getSize Size}'. + * + * + * @return the meta object for the containment reference 'Size'. + * @see rba.view.Offset#getSize() + * @see #getOffset() + * @generated + */ + EReference getOffset_Size(); + + /** + * Returns the meta object for class '{@link rba.view.AreaOperator Area Operator}'. + * + * + * @return the meta object for class 'Area Operator'. + * @see rba.view.AreaOperator + * @generated + */ + EClass getAreaOperator(); + + /** + * Returns the meta object for class '{@link rba.view.IsDisplayed Is Displayed}'. + * + * + * @return the meta object for class 'Is Displayed'. + * @see rba.view.IsDisplayed + * @generated + */ + EClass getIsDisplayed(); + + /** + * Returns the meta object for the '{@link rba.view.IsDisplayed#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.view.IsDisplayed#getSymbol() + * @generated + */ + EOperation getIsDisplayed__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.view.IsDisplayed#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.view.IsDisplayed#getUnderlyingType() + * @generated + */ + EOperation getIsDisplayed__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.view.DisplayingContent Displaying Content}'. + * + * + * @return the meta object for class 'Displaying Content'. + * @see rba.view.DisplayingContent + * @generated + */ + EClass getDisplayingContent(); + + /** + * Returns the meta object for the '{@link rba.view.DisplayingContent#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.view.DisplayingContent#getSymbol() + * @generated + */ + EOperation getDisplayingContent__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.view.DisplayingContent#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.view.DisplayingContent#getUnderlyingType() + * @generated + */ + EOperation getDisplayingContent__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.view.IsHidden Is Hidden}'. + * + * + * @return the meta object for class 'Is Hidden'. + * @see rba.view.IsHidden + * @generated + */ + EClass getIsHidden(); + + /** + * Returns the meta object for the '{@link rba.view.IsHidden#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.view.IsHidden#getSymbol() + * @generated + */ + EOperation getIsHidden__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.view.IsHidden#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.view.IsHidden#getUnderlyingType() + * @generated + */ + EOperation getIsHidden__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.view.ViewContentOperator View Content Operator}'. + * + * + * @return the meta object for class 'View Content Operator'. + * @see rba.view.ViewContentOperator + * @generated + */ + EClass getViewContentOperator(); + + /** + * Returns the meta object for the '{@link rba.view.ViewContentOperator#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.view.ViewContentOperator#getUnderlyingType() + * @generated + */ + EOperation getViewContentOperator__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.view.IsVisible Is Visible}'. + * + * + * @return the meta object for class 'Is Visible'. + * @see rba.view.IsVisible + * @generated + */ + EClass getIsVisible(); + + /** + * Returns the meta object for the '{@link rba.view.IsVisible#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.view.IsVisible#getSymbol() + * @generated + */ + EOperation getIsVisible__GetSymbol(); + + /** + * Returns the meta object for class '{@link rba.view.AllInstanceOfArea All Instance Of Area}'. + * + * + * @return the meta object for class 'All Instance Of Area'. + * @see rba.view.AllInstanceOfArea + * @generated + */ + EClass getAllInstanceOfArea(); + + /** + * Returns the meta object for the '{@link rba.view.AllInstanceOfArea#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.view.AllInstanceOfArea#getExpressionText() + * @generated + */ + EOperation getAllInstanceOfArea__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.view.AllInstanceOfArea#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.view.AllInstanceOfArea#getUnderlyingType() + * @generated + */ + EOperation getAllInstanceOfArea__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.view.AllInstanceOfViewContent All Instance Of View Content}'. + * + * + * @return the meta object for class 'All Instance Of View Content'. + * @see rba.view.AllInstanceOfViewContent + * @generated + */ + EClass getAllInstanceOfViewContent(); + + /** + * Returns the meta object for the '{@link rba.view.AllInstanceOfViewContent#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.view.AllInstanceOfViewContent#getExpressionText() + * @generated + */ + EOperation getAllInstanceOfViewContent__GetExpressionText(); + + /** + * Returns the meta object for the '{@link rba.view.AllInstanceOfViewContent#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.view.AllInstanceOfViewContent#getUnderlyingType() + * @generated + */ + EOperation getAllInstanceOfViewContent__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.view.IsDisplayedOn Is Displayed On}'. + * + * + * @return the meta object for class 'Is Displayed On'. + * @see rba.view.IsDisplayedOn + * @generated + */ + EClass getIsDisplayedOn(); + + /** + * Returns the meta object for the '{@link rba.view.IsDisplayedOn#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.view.IsDisplayedOn#getSymbol() + * @generated + */ + EOperation getIsDisplayedOn__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.view.IsDisplayedOn#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.view.IsDisplayedOn#getUnderlyingType() + * @generated + */ + EOperation getIsDisplayedOn__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.view.IsDisplayedOn#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.view.IsDisplayedOn#getExpressionText() + * @generated + */ + EOperation getIsDisplayedOn__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.view.IsChangedDisplay Is Changed Display}'. + * + * + * @return the meta object for class 'Is Changed Display'. + * @see rba.view.IsChangedDisplay + * @generated + */ + EClass getIsChangedDisplay(); + + /** + * Returns the meta object for the '{@link rba.view.IsChangedDisplay#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.view.IsChangedDisplay#getSymbol() + * @generated + */ + EOperation getIsChangedDisplay__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.view.IsChangedDisplay#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.view.IsChangedDisplay#getUnderlyingType() + * @generated + */ + EOperation getIsChangedDisplay__GetUnderlyingType(); + + /** + * Returns the meta object for class '{@link rba.view.IsTranslatedViewTo Is Translated View To}'. + * + * + * @return the meta object for class 'Is Translated View To'. + * @see rba.view.IsTranslatedViewTo + * @generated + */ + EClass getIsTranslatedViewTo(); + + /** + * Returns the meta object for the '{@link rba.view.IsTranslatedViewTo#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.view.IsTranslatedViewTo#getSymbol() + * @generated + */ + EOperation getIsTranslatedViewTo__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.view.IsTranslatedViewTo#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.view.IsTranslatedViewTo#getUnderlyingType() + * @generated + */ + EOperation getIsTranslatedViewTo__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.view.IsTranslatedViewTo#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.view.IsTranslatedViewTo#getExpressionText() + * @generated + */ + EOperation getIsTranslatedViewTo__GetExpressionText(); + + /** + * Returns the meta object for class '{@link rba.view.HideLowerPriority Hide Lower Priority}'. + * + * + * @return the meta object for class 'Hide Lower Priority'. + * @see rba.view.HideLowerPriority + * @generated + */ + EClass getHideLowerPriority(); + + /** + * Returns the meta object for the '{@link rba.view.HideLowerPriority#getSymbol() Get Symbol}' operation. + * + * + * @return the meta object for the 'Get Symbol' operation. + * @see rba.view.HideLowerPriority#getSymbol() + * @generated + */ + EOperation getHideLowerPriority__GetSymbol(); + + /** + * Returns the meta object for the '{@link rba.view.HideLowerPriority#getUnderlyingType() Get Underlying Type}' operation. + * + * + * @return the meta object for the 'Get Underlying Type' operation. + * @see rba.view.HideLowerPriority#getUnderlyingType() + * @generated + */ + EOperation getHideLowerPriority__GetUnderlyingType(); + + /** + * Returns the meta object for the '{@link rba.view.HideLowerPriority#getExpressionText() Get Expression Text}' operation. + * + * + * @return the meta object for the 'Get Expression Text' operation. + * @see rba.view.HideLowerPriority#getExpressionText() + * @generated + */ + EOperation getHideLowerPriority__GetExpressionText(); + + /** + * Returns the meta object for enum '{@link rba.view.BasePoint Base Point}'. + * + * + * @return the meta object for enum 'Base Point'. + * @see rba.view.BasePoint + * @generated + */ + EEnum getBasePoint(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + RBAViewFactory getRBAViewFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link rba.view.impl.ViewContentImpl View Content}' class. + * + * + * @see rba.view.impl.ViewContentImpl + * @see rba.view.impl.RBAViewPackageImpl#getViewContent() + * @generated + */ + EClass VIEW_CONTENT = eINSTANCE.getViewContent(); + + /** + * The meta object literal for the 'Size' containment reference list feature. + * + * + * @generated + */ + EReference VIEW_CONTENT__SIZE = eINSTANCE.getViewContent_Size(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation VIEW_CONTENT___GET_EXPRESSION_TYPE = eINSTANCE.getViewContent__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.view.impl.ViewContentSetImpl View Content Set}' class. + * + * + * @see rba.view.impl.ViewContentSetImpl + * @see rba.view.impl.RBAViewPackageImpl#getViewContentSet() + * @generated + */ + EClass VIEW_CONTENT_SET = eINSTANCE.getViewContentSet(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation VIEW_CONTENT_SET___GET_EXPRESSION_TYPE = eINSTANCE.getViewContentSet__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.view.impl.ViewContentStateImpl View Content State}' class. + * + * + * @see rba.view.impl.ViewContentStateImpl + * @see rba.view.impl.RBAViewPackageImpl#getViewContentState() + * @generated + */ + EClass VIEW_CONTENT_STATE = eINSTANCE.getViewContentState(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation VIEW_CONTENT_STATE___GET_EXPRESSION_TYPE = eINSTANCE.getViewContentState__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.view.impl.LayoutManagerImpl Layout Manager}' class. + * + * + * @see rba.view.impl.LayoutManagerImpl + * @see rba.view.impl.RBAViewPackageImpl#getLayoutManager() + * @generated + */ + EClass LAYOUT_MANAGER = eINSTANCE.getLayoutManager(); + + /** + * The meta object literal for the 'Collect Leaf Area' operation. + * + * + * @generated + */ + EOperation LAYOUT_MANAGER___COLLECT_LEAF_AREA = eINSTANCE.getLayoutManager__CollectLeafArea(); + + /** + * The meta object literal for the '{@link rba.view.impl.AlignedLayoutImpl Aligned Layout}' class. + * + * + * @see rba.view.impl.AlignedLayoutImpl + * @see rba.view.impl.RBAViewPackageImpl#getAlignedLayout() + * @generated + */ + EClass ALIGNED_LAYOUT = eINSTANCE.getAlignedLayout(); + + /** + * The meta object literal for the 'Subarea' reference list feature. + * + * + * @generated + */ + EReference ALIGNED_LAYOUT__SUBAREA = eINSTANCE.getAlignedLayout_Subarea(); + + /** + * The meta object literal for the 'Base Point' attribute feature. + * + * + * @generated + */ + EAttribute ALIGNED_LAYOUT__BASE_POINT = eINSTANCE.getAlignedLayout_BasePoint(); + + /** + * The meta object literal for the 'Collect Leaf Area' operation. + * + * + * @generated + */ + EOperation ALIGNED_LAYOUT___COLLECT_LEAF_AREA = eINSTANCE.getAlignedLayout__CollectLeafArea(); + + /** + * The meta object literal for the '{@link rba.view.impl.VerticalLayoutImpl Vertical Layout}' class. + * + * + * @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 Horizontal Layout}' class. + * + * + * @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 Fixed Position Layout}' class. + * + * + * @see rba.view.impl.FixedPositionLayoutImpl + * @see rba.view.impl.RBAViewPackageImpl#getFixedPositionLayout() + * @generated + */ + EClass FIXED_POSITION_LAYOUT = eINSTANCE.getFixedPositionLayout(); + + /** + * The meta object literal for the 'Sub Area Position' containment reference list feature. + * + * + * @generated + */ + EReference FIXED_POSITION_LAYOUT__SUB_AREA_POSITION = eINSTANCE.getFixedPositionLayout_SubAreaPosition(); + + /** + * The meta object literal for the 'Collect Leaf Area' operation. + * + * + * @generated + */ + EOperation FIXED_POSITION_LAYOUT___COLLECT_LEAF_AREA = eINSTANCE.getFixedPositionLayout__CollectLeafArea(); + + /** + * The meta object literal for the '{@link rba.view.impl.PositionContainerImpl Position Container}' class. + * + * + * @see rba.view.impl.PositionContainerImpl + * @see rba.view.impl.RBAViewPackageImpl#getPositionContainer() + * @generated + */ + EClass POSITION_CONTAINER = eINSTANCE.getPositionContainer(); + + /** + * The meta object literal for the 'X' attribute feature. + * + * + * @generated + */ + EAttribute POSITION_CONTAINER__X = eINSTANCE.getPositionContainer_X(); + + /** + * The meta object literal for the 'Y' attribute feature. + * + * + * @generated + */ + EAttribute POSITION_CONTAINER__Y = eINSTANCE.getPositionContainer_Y(); + + /** + * The meta object literal for the 'Base Point' attribute feature. + * + * + * @generated + */ + EAttribute POSITION_CONTAINER__BASE_POINT = eINSTANCE.getPositionContainer_BasePoint(); + + /** + * The meta object literal for the 'Area' reference feature. + * + * + * @generated + */ + EReference POSITION_CONTAINER__AREA = eINSTANCE.getPositionContainer_Area(); + + /** + * The meta object literal for the 'Offset' containment reference list feature. + * + * + * @generated + */ + EReference POSITION_CONTAINER__OFFSET = eINSTANCE.getPositionContainer_Offset(); + + /** + * The meta object literal for the '{@link rba.view.impl.DisplayImpl Display}' class. + * + * + * @see rba.view.impl.DisplayImpl + * @see rba.view.impl.RBAViewPackageImpl#getDisplay() + * @generated + */ + EClass DISPLAY = eINSTANCE.getDisplay(); + + /** + * The meta object literal for the 'Root' containment reference feature. + * + * + * @generated + */ + EReference DISPLAY__ROOT = eINSTANCE.getDisplay_Root(); + + /** + * The meta object literal for the 'Size' containment reference feature. + * + * + * @generated + */ + EReference DISPLAY__SIZE = eINSTANCE.getDisplay_Size(); + + /** + * The meta object literal for the '{@link rba.view.impl.CompositeAreaImpl Composite Area}' class. + * + * + * @see rba.view.impl.CompositeAreaImpl + * @see rba.view.impl.RBAViewPackageImpl#getCompositeArea() + * @generated + */ + EClass COMPOSITE_AREA = eINSTANCE.getCompositeArea(); + + /** + * The meta object literal for the 'Layout' containment reference feature. + * + * + * @generated + */ + EReference COMPOSITE_AREA__LAYOUT = eINSTANCE.getCompositeArea_Layout(); + + /** + * The meta object literal for the 'Collect Leaf Area' operation. + * + * + * @generated + */ + EOperation COMPOSITE_AREA___COLLECT_LEAF_AREA = eINSTANCE.getCompositeArea__CollectLeafArea(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation COMPOSITE_AREA___GET_EXPRESSION_TYPE = eINSTANCE.getCompositeArea__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.view.impl.AreaImpl Area}' class. + * + * + * @see rba.view.impl.AreaImpl + * @see rba.view.impl.RBAViewPackageImpl#getArea() + * @generated + */ + EClass AREA = eINSTANCE.getArea(); + + /** + * The meta object literal for the 'Zorder' containment reference feature. + * + * + * @generated + */ + EReference AREA__ZORDER = eINSTANCE.getArea_Zorder(); + + /** + * The meta object literal for the 'Size' containment reference list feature. + * + * + * @generated + */ + EReference AREA__SIZE = eINSTANCE.getArea_Size(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation AREA___GET_EXPRESSION_TYPE = eINSTANCE.getArea__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.view.impl.AreaSetImpl Area Set}' class. + * + * + * @see rba.view.impl.AreaSetImpl + * @see rba.view.impl.RBAViewPackageImpl#getAreaSet() + * @generated + */ + EClass AREA_SET = eINSTANCE.getAreaSet(); + + /** + * The meta object literal for the 'Get Expression Type' operation. + * + * + * @generated + */ + EOperation AREA_SET___GET_EXPRESSION_TYPE = eINSTANCE.getAreaSet__GetExpressionType(); + + /** + * The meta object literal for the '{@link rba.view.impl.SizeIdentifierImpl Size Identifier}' class. + * + * + * @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 Size}' class. + * + * + * @see rba.view.impl.SizeImpl + * @see rba.view.impl.RBAViewPackageImpl#getSize() + * @generated + */ + EClass SIZE = eINSTANCE.getSize(); + + /** + * The meta object literal for the 'Width' attribute feature. + * + * + * @generated + */ + EAttribute SIZE__WIDTH = eINSTANCE.getSize_Width(); + + /** + * The meta object literal for the 'Height' attribute feature. + * + * + * @generated + */ + EAttribute SIZE__HEIGHT = eINSTANCE.getSize_Height(); + + /** + * The meta object literal for the '{@link rba.view.impl.SizeReferenceImpl Size Reference}' class. + * + * + * @see rba.view.impl.SizeReferenceImpl + * @see rba.view.impl.RBAViewPackageImpl#getSizeReference() + * @generated + */ + EClass SIZE_REFERENCE = eINSTANCE.getSizeReference(); + + /** + * The meta object literal for the 'Size' reference feature. + * + * + * @generated + */ + EReference SIZE_REFERENCE__SIZE = eINSTANCE.getSizeReference_Size(); + + /** + * The meta object literal for the '{@link rba.view.impl.OffsetImpl Offset}' class. + * + * + * @see rba.view.impl.OffsetImpl + * @see rba.view.impl.RBAViewPackageImpl#getOffset() + * @generated + */ + EClass OFFSET = eINSTANCE.getOffset(); + + /** + * The meta object literal for the 'X' attribute feature. + * + * + * @generated + */ + EAttribute OFFSET__X = eINSTANCE.getOffset_X(); + + /** + * The meta object literal for the 'Y' attribute feature. + * + * + * @generated + */ + EAttribute OFFSET__Y = eINSTANCE.getOffset_Y(); + + /** + * The meta object literal for the 'Size' containment reference feature. + * + * + * @generated + */ + EReference OFFSET__SIZE = eINSTANCE.getOffset_Size(); + + /** + * The meta object literal for the '{@link rba.view.impl.AreaOperatorImpl Area Operator}' class. + * + * + * @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 Is Displayed}' class. + * + * + * @see rba.view.impl.IsDisplayedImpl + * @see rba.view.impl.RBAViewPackageImpl#getIsDisplayed() + * @generated + */ + EClass IS_DISPLAYED = eINSTANCE.getIsDisplayed(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_DISPLAYED___GET_SYMBOL = eINSTANCE.getIsDisplayed__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_DISPLAYED___GET_UNDERLYING_TYPE = eINSTANCE.getIsDisplayed__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.view.impl.DisplayingContentImpl Displaying Content}' class. + * + * + * @see rba.view.impl.DisplayingContentImpl + * @see rba.view.impl.RBAViewPackageImpl#getDisplayingContent() + * @generated + */ + EClass DISPLAYING_CONTENT = eINSTANCE.getDisplayingContent(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation DISPLAYING_CONTENT___GET_SYMBOL = eINSTANCE.getDisplayingContent__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation DISPLAYING_CONTENT___GET_UNDERLYING_TYPE = eINSTANCE.getDisplayingContent__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.view.impl.IsHiddenImpl Is Hidden}' class. + * + * + * @see rba.view.impl.IsHiddenImpl + * @see rba.view.impl.RBAViewPackageImpl#getIsHidden() + * @generated + */ + EClass IS_HIDDEN = eINSTANCE.getIsHidden(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_HIDDEN___GET_SYMBOL = eINSTANCE.getIsHidden__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_HIDDEN___GET_UNDERLYING_TYPE = eINSTANCE.getIsHidden__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.view.impl.ViewContentOperatorImpl View Content Operator}' class. + * + * + * @see rba.view.impl.ViewContentOperatorImpl + * @see rba.view.impl.RBAViewPackageImpl#getViewContentOperator() + * @generated + */ + EClass VIEW_CONTENT_OPERATOR = eINSTANCE.getViewContentOperator(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation VIEW_CONTENT_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getViewContentOperator__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.view.impl.IsVisibleImpl Is Visible}' class. + * + * + * @see rba.view.impl.IsVisibleImpl + * @see rba.view.impl.RBAViewPackageImpl#getIsVisible() + * @generated + */ + EClass IS_VISIBLE = eINSTANCE.getIsVisible(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_VISIBLE___GET_SYMBOL = eINSTANCE.getIsVisible__GetSymbol(); + + /** + * The meta object literal for the '{@link rba.view.impl.AllInstanceOfAreaImpl All Instance Of Area}' class. + * + * + * @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 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation ALL_INSTANCE_OF_AREA___GET_EXPRESSION_TEXT = eINSTANCE.getAllInstanceOfArea__GetExpressionText(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation ALL_INSTANCE_OF_AREA___GET_UNDERLYING_TYPE = eINSTANCE.getAllInstanceOfArea__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.view.impl.AllInstanceOfViewContentImpl All Instance Of View Content}' class. + * + * + * @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 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation ALL_INSTANCE_OF_VIEW_CONTENT___GET_EXPRESSION_TEXT = eINSTANCE + .getAllInstanceOfViewContent__GetExpressionText(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation ALL_INSTANCE_OF_VIEW_CONTENT___GET_UNDERLYING_TYPE = eINSTANCE + .getAllInstanceOfViewContent__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.view.impl.IsDisplayedOnImpl Is Displayed On}' class. + * + * + * @see rba.view.impl.IsDisplayedOnImpl + * @see rba.view.impl.RBAViewPackageImpl#getIsDisplayedOn() + * @generated + */ + EClass IS_DISPLAYED_ON = eINSTANCE.getIsDisplayedOn(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_DISPLAYED_ON___GET_SYMBOL = eINSTANCE.getIsDisplayedOn__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_DISPLAYED_ON___GET_UNDERLYING_TYPE = eINSTANCE.getIsDisplayedOn__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation IS_DISPLAYED_ON___GET_EXPRESSION_TEXT = eINSTANCE.getIsDisplayedOn__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.view.impl.IsChangedDisplayImpl Is Changed Display}' class. + * + * + * @see rba.view.impl.IsChangedDisplayImpl + * @see rba.view.impl.RBAViewPackageImpl#getIsChangedDisplay() + * @generated + */ + EClass IS_CHANGED_DISPLAY = eINSTANCE.getIsChangedDisplay(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_CHANGED_DISPLAY___GET_SYMBOL = eINSTANCE.getIsChangedDisplay__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_CHANGED_DISPLAY___GET_UNDERLYING_TYPE = eINSTANCE.getIsChangedDisplay__GetUnderlyingType(); + + /** + * The meta object literal for the '{@link rba.view.impl.IsTranslatedViewToImpl Is Translated View To}' class. + * + * + * @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 'Get Symbol' operation. + * + * + * @generated + */ + EOperation IS_TRANSLATED_VIEW_TO___GET_SYMBOL = eINSTANCE.getIsTranslatedViewTo__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation IS_TRANSLATED_VIEW_TO___GET_UNDERLYING_TYPE = eINSTANCE.getIsTranslatedViewTo__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation IS_TRANSLATED_VIEW_TO___GET_EXPRESSION_TEXT = eINSTANCE.getIsTranslatedViewTo__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.view.impl.HideLowerPriorityImpl Hide Lower Priority}' class. + * + * + * @see rba.view.impl.HideLowerPriorityImpl + * @see rba.view.impl.RBAViewPackageImpl#getHideLowerPriority() + * @generated + */ + EClass HIDE_LOWER_PRIORITY = eINSTANCE.getHideLowerPriority(); + + /** + * The meta object literal for the 'Get Symbol' operation. + * + * + * @generated + */ + EOperation HIDE_LOWER_PRIORITY___GET_SYMBOL = eINSTANCE.getHideLowerPriority__GetSymbol(); + + /** + * The meta object literal for the 'Get Underlying Type' operation. + * + * + * @generated + */ + EOperation HIDE_LOWER_PRIORITY___GET_UNDERLYING_TYPE = eINSTANCE.getHideLowerPriority__GetUnderlyingType(); + + /** + * The meta object literal for the 'Get Expression Text' operation. + * + * + * @generated + */ + EOperation HIDE_LOWER_PRIORITY___GET_EXPRESSION_TEXT = eINSTANCE.getHideLowerPriority__GetExpressionText(); + + /** + * The meta object literal for the '{@link rba.view.BasePoint Base Point}' enum. + * + * + * @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; + +/** + * + * A representation of the model object 'Size'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.view.Size#getWidth Width}
  • + *
  • {@link rba.view.Size#getHeight Height}
  • + *
+ * + * @see rba.view.RBAViewPackage#getSize() + * @model + * @generated + */ +public interface Size extends PackagableElement, SizeIdentifier { + /** + * Returns the value of the 'Width' attribute. + * + * + * + * + * + * @return the value of the 'Width' 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 Width}' attribute. + * + * + * @param value the new value of the 'Width' attribute. + * @see #isSetWidth() + * @see #unsetWidth() + * @see #getWidth() + * @generated + */ + void setWidth(int value); + + /** + * Unsets the value of the '{@link rba.view.Size#getWidth Width}' attribute. + * + * + * @see #isSetWidth() + * @see #getWidth() + * @see #setWidth(int) + * @generated + */ + void unsetWidth(); + + /** + * Returns whether the value of the '{@link rba.view.Size#getWidth Width}' attribute is set. + * + * + * @return whether the value of the 'Width' attribute is set. + * @see #unsetWidth() + * @see #getWidth() + * @see #setWidth(int) + * @generated + */ + boolean isSetWidth(); + + /** + * Returns the value of the 'Height' attribute. + * + * + * + * + * + * @return the value of the 'Height' 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 Height}' attribute. + * + * + * @param value the new value of the 'Height' attribute. + * @see #isSetHeight() + * @see #unsetHeight() + * @see #getHeight() + * @generated + */ + void setHeight(int value); + + /** + * Unsets the value of the '{@link rba.view.Size#getHeight Height}' attribute. + * + * + * @see #isSetHeight() + * @see #getHeight() + * @see #setHeight(int) + * @generated + */ + void unsetHeight(); + + /** + * Returns whether the value of the '{@link rba.view.Size#getHeight Height}' attribute is set. + * + * + * @return whether the value of the 'Height' 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; + +/** + * + * A representation of the model object 'Size Identifier'. + * + * + * + * @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; + +/** + * + * A representation of the model object 'Size Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.view.SizeReference#getSize Size}
  • + *
+ * + * @see rba.view.RBAViewPackage#getSizeReference() + * @model + * @generated + */ +public interface SizeReference extends SizeIdentifier { + /** + * Returns the value of the 'Size' reference. + * + *

+ * If the meaning of the 'Size' reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Size' reference. + * @see #setSize(Size) + * @see rba.view.RBAViewPackage#getSizeReference_Size() + * @model + * @generated + */ + Size getSize(); + + /** + * Sets the value of the '{@link rba.view.SizeReference#getSize Size}' reference. + * + * + * @param value the new value of the 'Size' 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; + +/** + * + * A representation of the model object 'Vertical Layout'. + * + * + * + * + * + * + * + * @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; + +/** + * + * A representation of the model object 'View Content'. + * + * + * + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link rba.view.ViewContent#getSize Size}
  • + *
+ * + * @see rba.view.RBAViewPackage#getViewContent() + * @model + * @generated + */ +public interface ViewContent extends Content { + /** + * Returns the value of the 'Size' containment reference list. + * The list contents are of type {@link rba.view.SizeIdentifier}. + * + * + * + * + * + * @return the value of the 'Size' containment reference list. + * @see rba.view.RBAViewPackage#getViewContent_Size() + * @model containment="true" + * @generated + */ + EList getSize(); + + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'View Content Operator'. + * + * + * + * + * + * + * + * @see rba.view.RBAViewPackage#getViewContentOperator() + * @model abstract="true" + * @generated + */ +public interface ViewContentOperator extends ContentOperator { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'View Content Set'. + * + * + * + * + * + * + * + * @see rba.view.RBAViewPackage#getViewContentSet() + * @model + * @generated + */ +public interface ViewContentSet extends ContentSet { + /** + * + * + * + * @Override + * + * @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; + +/** + * + * A representation of the model object 'View Content State'. + * + * + * + * + * + * + * + * @see rba.view.RBAViewPackage#getViewContentState() + * @model + * @generated + */ +public interface ViewContentState extends ContentState { + /** + * + * + * + * @Override + * + * @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; + +/** + * An implementation of the model object 'Aligned Layout'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.view.impl.AlignedLayoutImpl#getSubarea Subarea}
  • + *
  • {@link rba.view.impl.AlignedLayoutImpl#getBasePoint Base Point}
  • + *
+ * + * @generated + */ +public abstract class AlignedLayoutImpl extends LayoutManagerImpl implements AlignedLayout { + /** + * The cached value of the '{@link #getSubarea() Subarea}' reference list. + * + * @see #getSubarea() + * @generated + * @ordered + */ + protected EList subarea; + + /** + * The default value of the '{@link #getBasePoint() Base Point}' attribute. + * + * @see #getBasePoint() + * @generated + * @ordered + */ + protected static final BasePoint BASE_POINT_EDEFAULT = BasePoint.LEFT_TOP; + + /** + * The cached value of the '{@link #getBasePoint() Base Point}' attribute. + * + * @see #getBasePoint() + * @generated + * @ordered + */ + protected BasePoint basePoint = BASE_POINT_EDEFAULT; + + /** + * + * @generated + */ + protected AlignedLayoutImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.ALIGNED_LAYOUT; + } + + /** + * + * @generated + */ + public EList getSubarea() { + if (subarea == null) { + subarea = new EObjectResolvingEList(Area.class, this, RBAViewPackage.ALIGNED_LAYOUT__SUBAREA); + } + return subarea; + } + + /** + * + * @generated + */ + public BasePoint getBasePoint() { + return basePoint; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + public EList collectLeafArea() { + java.util.Set areas = new java.util.HashSet(); + 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(areas); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBAViewPackage.ALIGNED_LAYOUT__SUBAREA: + getSubarea().clear(); + getSubarea().addAll((Collection) newValue); + return; + case RBAViewPackage.ALIGNED_LAYOUT__BASE_POINT: + setBasePoint((BasePoint) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'All Instance Of Area'. + * + * @generated + */ +public class AllInstanceOfAreaImpl extends SetExpressionImpl implements AllInstanceOfArea { + /** + * + * @generated + */ + protected AllInstanceOfAreaImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.ALL_INSTANCE_OF_AREA; + } + + /** + * + * @generated + */ + public String getExpressionText() { + return "AREA"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.SET_OF_AREA; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'All Instance Of View Content'. + * + * @generated + */ +public class AllInstanceOfViewContentImpl extends SetExpressionImpl implements AllInstanceOfViewContent { + /** + * + * @generated + */ + protected AllInstanceOfViewContentImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.ALL_INSTANCE_OF_VIEW_CONTENT; + } + + /** + * + * @generated + */ + public String getExpressionText() { + return "ALL_VIEWCONTENTS"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.SET_OF_CONTENT; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Area'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.view.impl.AreaImpl#getZorder Zorder}
  • + *
  • {@link rba.view.impl.AreaImpl#getSize Size}
  • + *
+ * + * @generated + */ +public class AreaImpl extends AllocatableImpl implements Area { + /** + * The cached value of the '{@link #getZorder() Zorder}' containment reference. + * + * @see #getZorder() + * @generated + * @ordered + */ + protected Expression zorder; + + /** + * The cached value of the '{@link #getSize() Size}' containment reference list. + * + * @see #getSize() + * @generated + * @ordered + */ + protected EList size; + + /** + * + * @generated + */ + protected AreaImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.AREA; + } + + /** + * + * @generated + */ + public Expression getZorder() { + return zorder; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public EList getSize() { + if (size == null) { + size = new EObjectContainmentEList(SizeIdentifier.class, this, RBAViewPackage.AREA__SIZE); + } + return size; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.AREA; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Area Operator'. + * + * @generated + */ +public abstract class AreaOperatorImpl extends AllocatableOperatorImpl implements AreaOperator { + /** + * + * @generated + */ + protected AreaOperatorImpl() { + super(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Area Set'. + * + * @generated + */ +public class AreaSetImpl extends AllocatableSetImpl implements AreaSet { + /** + * + * @generated + */ + protected AreaSetImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.AREA_SET; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.SET_OF_AREA; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Composite Area'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.view.impl.CompositeAreaImpl#getLayout Layout}
  • + *
+ * + * @generated + */ +public class CompositeAreaImpl extends PackagableElementImpl implements CompositeArea { + /** + * The cached value of the '{@link #getLayout() Layout}' containment reference. + * + * @see #getLayout() + * @generated + * @ordered + */ + protected LayoutManager layout; + + /** + * + * @generated + */ + protected CompositeAreaImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.COMPOSITE_AREA; + } + + /** + * + * @generated + */ + public LayoutManager getLayout() { + return layout; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public EList collectLeafArea() { + java.util.Set areas = new java.util.HashSet(); + if (layout != null) { + areas.addAll(layout.collectLeafArea()); + } + + return new org.eclipse.emf.common.util.BasicEList(areas); + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.AREA; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBAViewPackage.COMPOSITE_AREA__LAYOUT: + setLayout((LayoutManager) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBAViewPackage.COMPOSITE_AREA__LAYOUT: + setLayout((LayoutManager) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBAViewPackage.COMPOSITE_AREA__LAYOUT: + return layout != null; + } + return super.eIsSet(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Display'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.view.impl.DisplayImpl#getRoot Root}
  • + *
  • {@link rba.view.impl.DisplayImpl#getSize Size}
  • + *
+ * + * @generated + */ +public class DisplayImpl extends PackagableElementImpl implements Display { + /** + * The cached value of the '{@link #getRoot() Root}' containment reference. + * + * @see #getRoot() + * @generated + * @ordered + */ + protected CompositeArea root; + + /** + * The cached value of the '{@link #getSize() Size}' containment reference. + * + * @see #getSize() + * @generated + * @ordered + */ + protected SizeIdentifier size; + + /** + * + * @generated + */ + protected DisplayImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.DISPLAY; + } + + /** + * + * @generated + */ + public CompositeArea getRoot() { + return root; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public SizeIdentifier getSize() { + return size; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Displaying Content'. + * + * @generated + */ +public class DisplayingContentImpl extends AreaOperatorImpl implements DisplayingContent { + /** + * + * @generated + */ + protected DisplayingContentImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.DISPLAYING_CONTENT; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".displayingContent()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.CONTENT; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Fixed Position Layout'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.view.impl.FixedPositionLayoutImpl#getSubAreaPosition Sub Area Position}
  • + *
+ * + * @generated + */ +public class FixedPositionLayoutImpl extends LayoutManagerImpl implements FixedPositionLayout { + /** + * The cached value of the '{@link #getSubAreaPosition() Sub Area Position}' containment reference list. + * @see #getSubAreaPosition() + * @generated + * @ordered + */ + protected EList subAreaPosition; + + /** + * + * @generated + */ + protected FixedPositionLayoutImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.FIXED_POSITION_LAYOUT; + } + + /** + * + * @generated + */ + public EList getSubAreaPosition() { + if (subAreaPosition == null) { + subAreaPosition = new EObjectContainmentEList(PositionContainer.class, this, + RBAViewPackage.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION); + } + return subAreaPosition; + } + + /** + * + * @generated + */ + public EList collectLeafArea() { + java.util.Set areas = new java.util.HashSet(); + 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(areas); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBAViewPackage.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION: + getSubAreaPosition().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Hide Lower Priority'. + * + * @generated + */ +public class HideLowerPriorityImpl extends OperatorImpl implements HideLowerPriority { + /** + * + * @generated + */ + protected HideLowerPriorityImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.HIDE_LOWER_PRIORITY; + } + + /** + * + * @generated + */ + public String getSymbol() { + return "HideLowerPriority"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuilder expressionText = new StringBuilder(); + EList 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(); + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Horizontal Layout'. + * + * @generated + */ +public class HorizontalLayoutImpl extends AlignedLayoutImpl implements HorizontalLayout { + /** + * + * @generated + */ + protected HorizontalLayoutImpl() { + super(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Changed Display'. + * + * @generated + */ +public class IsChangedDisplayImpl extends AreaOperatorImpl implements IsChangedDisplay { + /** + * + * @generated + */ + protected IsChangedDisplayImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.IS_CHANGED_DISPLAY; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isChangedDisplay()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Displayed'. + * + * @generated + */ +public class IsDisplayedImpl extends AreaOperatorImpl implements IsDisplayed { + /** + * + * @generated + */ + protected IsDisplayedImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.IS_DISPLAYED; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isDisplayed()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Displayed On'. + * + * @generated + */ +public class IsDisplayedOnImpl extends ViewContentOperatorImpl implements IsDisplayedOn { + /** + * + * @generated + */ + protected IsDisplayedOnImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.IS_DISPLAYED_ON; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isDisplayedOn"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuilder expressionText = new StringBuilder(); + EList 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(); + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Hidden'. + * + * @generated + */ +public class IsHiddenImpl extends AreaOperatorImpl implements IsHidden { + /** + * + * @generated + */ + protected IsHiddenImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.IS_HIDDEN; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isHidden()"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Translated View To'. + * + * @generated + */ +public class IsTranslatedViewToImpl extends AreaOperatorImpl implements IsTranslatedViewTo { + /** + * + * @generated + */ + protected IsTranslatedViewToImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.IS_TRANSLATED_VIEW_TO; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isTranslatedViewTo"; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @generated + */ + public String getExpressionText() { + StringBuilder expressionText = new StringBuilder(); + EList 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(); + } + + /** + * + * @generated + */ + public boolean canExpand() { + return true; + } + + /** + * + * @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; + } + + /** + * + * @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); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Is Visible'. + * + * @generated + */ +public class IsVisibleImpl extends ViewContentOperatorImpl implements IsVisible { + /** + * + * @generated + */ + protected IsVisibleImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.IS_VISIBLE; + } + + /** + * + * @generated + */ + public String getSymbol() { + return ".isVisible()"; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Layout Manager'. + * + * @generated + */ +public abstract class LayoutManagerImpl extends MinimalEObjectImpl.Container implements LayoutManager { + /** + * + * @generated + */ + protected LayoutManagerImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.LAYOUT_MANAGER; + } + + /** + * + * @generated + */ + public EList collectLeafArea() { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Offset'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.view.impl.OffsetImpl#getX X}
  • + *
  • {@link rba.view.impl.OffsetImpl#getY Y}
  • + *
  • {@link rba.view.impl.OffsetImpl#getSize Size}
  • + *
+ * + * @generated + */ +public class OffsetImpl extends PackagableElementImpl implements Offset { + /** + * The default value of the '{@link #getX() X}' attribute. + * + * @see #getX() + * @generated + * @ordered + */ + protected static final int X_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getX() X}' attribute. + * + * @see #getX() + * @generated + * @ordered + */ + protected int x = X_EDEFAULT; + + /** + * This is true if the X attribute has been set. + * + * @generated + * @ordered + */ + protected boolean xESet; + + /** + * The default value of the '{@link #getY() Y}' attribute. + * + * @see #getY() + * @generated + * @ordered + */ + protected static final int Y_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getY() Y}' attribute. + * + * @see #getY() + * @generated + * @ordered + */ + protected int y = Y_EDEFAULT; + + /** + * This is true if the Y attribute has been set. + * + * @generated + * @ordered + */ + protected boolean yESet; + + /** + * The cached value of the '{@link #getSize() Size}' containment reference. + * + * @see #getSize() + * @generated + * @ordered + */ + protected SizeReference size; + + /** + * + * @generated + */ + protected OffsetImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.OFFSET; + } + + /** + * + * @generated + */ + public int getX() { + return x; + } + + /** + * + * @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)); + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public boolean isSetX() { + return xESet; + } + + /** + * + * @generated + */ + public int getY() { + return y; + } + + /** + * + * @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)); + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public boolean isSetY() { + return yESet; + } + + /** + * + * @generated + */ + public SizeReference getSize() { + return size; + } + + /** + * + * @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; + } + + /** + * + * @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)); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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(""); + result.append(", y: "); + if (yESet) + result.append(y); + else + result.append(""); + 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; + +/** + * An implementation of the model object 'Position Container'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.view.impl.PositionContainerImpl#getX X}
  • + *
  • {@link rba.view.impl.PositionContainerImpl#getY Y}
  • + *
  • {@link rba.view.impl.PositionContainerImpl#getBasePoint Base Point}
  • + *
  • {@link rba.view.impl.PositionContainerImpl#getArea Area}
  • + *
  • {@link rba.view.impl.PositionContainerImpl#getOffset Offset}
  • + *
+ * + * @generated + */ +public class PositionContainerImpl extends MinimalEObjectImpl.Container implements PositionContainer { + /** + * The default value of the '{@link #getX() X}' attribute. + * + * @see #getX() + * @generated + * @ordered + */ + protected static final int X_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getX() X}' attribute. + * + * @see #getX() + * @generated + * @ordered + */ + protected int x = X_EDEFAULT; + + /** + * This is true if the X attribute has been set. + * + * @generated + * @ordered + */ + protected boolean xESet; + + /** + * The default value of the '{@link #getY() Y}' attribute. + * + * @see #getY() + * @generated + * @ordered + */ + protected static final int Y_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getY() Y}' attribute. + * + * @see #getY() + * @generated + * @ordered + */ + protected int y = Y_EDEFAULT; + + /** + * This is true if the Y attribute has been set. + * + * @generated + * @ordered + */ + protected boolean yESet; + + /** + * The default value of the '{@link #getBasePoint() Base Point}' attribute. + * + * @see #getBasePoint() + * @generated + * @ordered + */ + protected static final BasePoint BASE_POINT_EDEFAULT = BasePoint.LEFT_TOP; + + /** + * The cached value of the '{@link #getBasePoint() Base Point}' attribute. + * + * @see #getBasePoint() + * @generated + * @ordered + */ + protected BasePoint basePoint = BASE_POINT_EDEFAULT; + + /** + * The cached value of the '{@link #getArea() Area}' reference. + * + * @see #getArea() + * @generated + * @ordered + */ + protected Area area; + + /** + * The cached value of the '{@link #getOffset() Offset}' containment reference list. + * + * @see #getOffset() + * @generated + * @ordered + */ + protected EList offset; + + /** + * + * @generated + */ + protected PositionContainerImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.POSITION_CONTAINER; + } + + /** + * + * @generated + */ + public int getX() { + return x; + } + + /** + * + * @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)); + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public boolean isSetX() { + return xESet; + } + + /** + * + * @generated + */ + public int getY() { + return y; + } + + /** + * + * @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)); + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public boolean isSetY() { + return yESet; + } + + /** + * + * @generated + */ + public BasePoint getBasePoint() { + return basePoint; + } + + /** + * + * @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)); + } + + /** + * + * @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; + } + + /** + * + * @generated + */ + public Area basicGetArea() { + return area; + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public EList getOffset() { + if (offset == null) { + offset = new EObjectContainmentEList(Offset.class, this, RBAViewPackage.POSITION_CONTAINER__OFFSET); + } + return offset; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @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(""); + result.append(", y: "); + if (yESet) + result.append(y); + else + result.append(""); + 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.*; + +/** + * An implementation of the model Factory. + * @generated + */ +public class RBAViewFactoryImpl extends EFactoryImpl implements RBAViewFactory { + /** + * Creates the default factory implementation. + * + * @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. + * + * @generated + */ + public RBAViewFactoryImpl() { + super(); + } + + /** + * + * @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"); + } + } + + /** + * + * @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"); + } + } + + /** + * + * @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"); + } + } + + /** + * + * @generated + */ + public ViewContent createViewContent() { + ViewContentImpl viewContent = new ViewContentImpl(); + return viewContent; + } + + /** + * + * @generated + */ + public ViewContentSet createViewContentSet() { + ViewContentSetImpl viewContentSet = new ViewContentSetImpl(); + return viewContentSet; + } + + /** + * + * @generated + */ + public ViewContentState createViewContentState() { + ViewContentStateImpl viewContentState = new ViewContentStateImpl(); + return viewContentState; + } + + /** + * + * @generated + */ + public VerticalLayout createVerticalLayout() { + VerticalLayoutImpl verticalLayout = new VerticalLayoutImpl(); + return verticalLayout; + } + + /** + * + * @generated + */ + public HorizontalLayout createHorizontalLayout() { + HorizontalLayoutImpl horizontalLayout = new HorizontalLayoutImpl(); + return horizontalLayout; + } + + /** + * + * @generated + */ + public FixedPositionLayout createFixedPositionLayout() { + FixedPositionLayoutImpl fixedPositionLayout = new FixedPositionLayoutImpl(); + return fixedPositionLayout; + } + + /** + * + * @generated + */ + public PositionContainer createPositionContainer() { + PositionContainerImpl positionContainer = new PositionContainerImpl(); + return positionContainer; + } + + /** + * + * @generated + */ + public Display createDisplay() { + DisplayImpl display = new DisplayImpl(); + return display; + } + + /** + * + * @generated + */ + public CompositeArea createCompositeArea() { + CompositeAreaImpl compositeArea = new CompositeAreaImpl(); + return compositeArea; + } + + /** + * + * @generated + */ + public Area createArea() { + AreaImpl area = new AreaImpl(); + return area; + } + + /** + * + * @generated + */ + public AreaSet createAreaSet() { + AreaSetImpl areaSet = new AreaSetImpl(); + return areaSet; + } + + /** + * + * @generated + */ + public Size createSize() { + SizeImpl size = new SizeImpl(); + return size; + } + + /** + * + * @generated + */ + public SizeReference createSizeReference() { + SizeReferenceImpl sizeReference = new SizeReferenceImpl(); + return sizeReference; + } + + /** + * + * @generated + */ + public Offset createOffset() { + OffsetImpl offset = new OffsetImpl(); + return offset; + } + + /** + * + * @generated + */ + public IsDisplayed createIsDisplayed() { + IsDisplayedImpl isDisplayed = new IsDisplayedImpl(); + return isDisplayed; + } + + /** + * + * @generated + */ + public DisplayingContent createDisplayingContent() { + DisplayingContentImpl displayingContent = new DisplayingContentImpl(); + return displayingContent; + } + + /** + * + * @generated + */ + public IsHidden createIsHidden() { + IsHiddenImpl isHidden = new IsHiddenImpl(); + return isHidden; + } + + /** + * + * @generated + */ + public IsVisible createIsVisible() { + IsVisibleImpl isVisible = new IsVisibleImpl(); + return isVisible; + } + + /** + * + * @generated + */ + public AllInstanceOfArea createAllInstanceOfArea() { + AllInstanceOfAreaImpl allInstanceOfArea = new AllInstanceOfAreaImpl(); + return allInstanceOfArea; + } + + /** + * + * @generated + */ + public AllInstanceOfViewContent createAllInstanceOfViewContent() { + AllInstanceOfViewContentImpl allInstanceOfViewContent = new AllInstanceOfViewContentImpl(); + return allInstanceOfViewContent; + } + + /** + * + * @generated + */ + public IsDisplayedOn createIsDisplayedOn() { + IsDisplayedOnImpl isDisplayedOn = new IsDisplayedOnImpl(); + return isDisplayedOn; + } + + /** + * + * @generated + */ + public IsChangedDisplay createIsChangedDisplay() { + IsChangedDisplayImpl isChangedDisplay = new IsChangedDisplayImpl(); + return isChangedDisplay; + } + + /** + * + * @generated + */ + public IsTranslatedViewTo createIsTranslatedViewTo() { + IsTranslatedViewToImpl isTranslatedViewTo = new IsTranslatedViewToImpl(); + return isTranslatedViewTo; + } + + /** + * + * @generated + */ + public HideLowerPriority createHideLowerPriority() { + HideLowerPriorityImpl hideLowerPriority = new HideLowerPriorityImpl(); + return hideLowerPriority; + } + + /** + * + * @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; + } + + /** + * + * @generated + */ + public String convertBasePointToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * @generated + */ + public RBAViewPackage getRBAViewPackage() { + return (RBAViewPackage) getEPackage(); + } + + /** + * + * @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; + +/** + * An implementation of the model Package. + * @generated + */ +public class RBAViewPackageImpl extends EPackageImpl implements RBAViewPackage { + /** + * + * @generated + */ + private EClass viewContentEClass = null; + + /** + * + * @generated + */ + private EClass viewContentSetEClass = null; + + /** + * + * @generated + */ + private EClass viewContentStateEClass = null; + + /** + * + * @generated + */ + private EClass layoutManagerEClass = null; + + /** + * + * @generated + */ + private EClass alignedLayoutEClass = null; + + /** + * + * @generated + */ + private EClass verticalLayoutEClass = null; + + /** + * + * @generated + */ + private EClass horizontalLayoutEClass = null; + + /** + * + * @generated + */ + private EClass fixedPositionLayoutEClass = null; + + /** + * + * @generated + */ + private EClass positionContainerEClass = null; + + /** + * + * @generated + */ + private EClass displayEClass = null; + + /** + * + * @generated + */ + private EClass compositeAreaEClass = null; + + /** + * + * @generated + */ + private EClass areaEClass = null; + + /** + * + * @generated + */ + private EClass areaSetEClass = null; + + /** + * + * @generated + */ + private EClass sizeIdentifierEClass = null; + + /** + * + * @generated + */ + private EClass sizeEClass = null; + + /** + * + * @generated + */ + private EClass sizeReferenceEClass = null; + + /** + * + * @generated + */ + private EClass offsetEClass = null; + + /** + * + * @generated + */ + private EClass areaOperatorEClass = null; + + /** + * + * @generated + */ + private EClass isDisplayedEClass = null; + + /** + * + * @generated + */ + private EClass displayingContentEClass = null; + + /** + * + * @generated + */ + private EClass isHiddenEClass = null; + + /** + * + * @generated + */ + private EClass viewContentOperatorEClass = null; + + /** + * + * @generated + */ + private EClass isVisibleEClass = null; + + /** + * + * @generated + */ + private EClass allInstanceOfAreaEClass = null; + + /** + * + * @generated + */ + private EClass allInstanceOfViewContentEClass = null; + + /** + * + * @generated + */ + private EClass isDisplayedOnEClass = null; + + /** + * + * @generated + */ + private EClass isChangedDisplayEClass = null; + + /** + * + * @generated + */ + private EClass isTranslatedViewToEClass = null; + + /** + * + * @generated + */ + private EClass hideLowerPriorityEClass = null; + + /** + * + * @generated + */ + private EEnum basePointEEnum = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

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. + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see rba.view.RBAViewPackage#eNS_URI + * @see #init() + * @generated + */ + private RBAViewPackageImpl() { + super(eNS_URI, RBAViewFactory.eINSTANCE); + } + + /** + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *

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. + * + * @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; + } + + /** + * + * @generated + */ + public EClass getViewContent() { + return viewContentEClass; + } + + /** + * + * @generated + */ + public EReference getViewContent_Size() { + return (EReference) viewContentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getViewContent__GetExpressionType() { + return viewContentEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getViewContentSet() { + return viewContentSetEClass; + } + + /** + * + * @generated + */ + public EOperation getViewContentSet__GetExpressionType() { + return viewContentSetEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getViewContentState() { + return viewContentStateEClass; + } + + /** + * + * @generated + */ + public EOperation getViewContentState__GetExpressionType() { + return viewContentStateEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getLayoutManager() { + return layoutManagerEClass; + } + + /** + * + * @generated + */ + public EOperation getLayoutManager__CollectLeafArea() { + return layoutManagerEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getAlignedLayout() { + return alignedLayoutEClass; + } + + /** + * + * @generated + */ + public EReference getAlignedLayout_Subarea() { + return (EReference) alignedLayoutEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EAttribute getAlignedLayout_BasePoint() { + return (EAttribute) alignedLayoutEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EOperation getAlignedLayout__CollectLeafArea() { + return alignedLayoutEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getVerticalLayout() { + return verticalLayoutEClass; + } + + /** + * + * @generated + */ + public EClass getHorizontalLayout() { + return horizontalLayoutEClass; + } + + /** + * + * @generated + */ + public EClass getFixedPositionLayout() { + return fixedPositionLayoutEClass; + } + + /** + * + * @generated + */ + public EReference getFixedPositionLayout_SubAreaPosition() { + return (EReference) fixedPositionLayoutEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getFixedPositionLayout__CollectLeafArea() { + return fixedPositionLayoutEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getPositionContainer() { + return positionContainerEClass; + } + + /** + * + * @generated + */ + public EAttribute getPositionContainer_X() { + return (EAttribute) positionContainerEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EAttribute getPositionContainer_Y() { + return (EAttribute) positionContainerEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EAttribute getPositionContainer_BasePoint() { + return (EAttribute) positionContainerEClass.getEStructuralFeatures().get(2); + } + + /** + * + * @generated + */ + public EReference getPositionContainer_Area() { + return (EReference) positionContainerEClass.getEStructuralFeatures().get(3); + } + + /** + * + * @generated + */ + public EReference getPositionContainer_Offset() { + return (EReference) positionContainerEClass.getEStructuralFeatures().get(4); + } + + /** + * + * @generated + */ + public EClass getDisplay() { + return displayEClass; + } + + /** + * + * @generated + */ + public EReference getDisplay_Root() { + return (EReference) displayEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getDisplay_Size() { + return (EReference) displayEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EClass getCompositeArea() { + return compositeAreaEClass; + } + + /** + * + * @generated + */ + public EReference getCompositeArea_Layout() { + return (EReference) compositeAreaEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EOperation getCompositeArea__CollectLeafArea() { + return compositeAreaEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getCompositeArea__GetExpressionType() { + return compositeAreaEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getArea() { + return areaEClass; + } + + /** + * + * @generated + */ + public EReference getArea_Zorder() { + return (EReference) areaEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EReference getArea_Size() { + return (EReference) areaEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EOperation getArea__GetExpressionType() { + return areaEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getAreaSet() { + return areaSetEClass; + } + + /** + * + * @generated + */ + public EOperation getAreaSet__GetExpressionType() { + return areaSetEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getSizeIdentifier() { + return sizeIdentifierEClass; + } + + /** + * + * @generated + */ + public EClass getSize() { + return sizeEClass; + } + + /** + * + * @generated + */ + public EAttribute getSize_Width() { + return (EAttribute) sizeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EAttribute getSize_Height() { + return (EAttribute) sizeEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EClass getSizeReference() { + return sizeReferenceEClass; + } + + /** + * + * @generated + */ + public EReference getSizeReference_Size() { + return (EReference) sizeReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EClass getOffset() { + return offsetEClass; + } + + /** + * + * @generated + */ + public EAttribute getOffset_X() { + return (EAttribute) offsetEClass.getEStructuralFeatures().get(0); + } + + /** + * + * @generated + */ + public EAttribute getOffset_Y() { + return (EAttribute) offsetEClass.getEStructuralFeatures().get(1); + } + + /** + * + * @generated + */ + public EReference getOffset_Size() { + return (EReference) offsetEClass.getEStructuralFeatures().get(2); + } + + /** + * + * @generated + */ + public EClass getAreaOperator() { + return areaOperatorEClass; + } + + /** + * + * @generated + */ + public EClass getIsDisplayed() { + return isDisplayedEClass; + } + + /** + * + * @generated + */ + public EOperation getIsDisplayed__GetSymbol() { + return isDisplayedEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsDisplayed__GetUnderlyingType() { + return isDisplayedEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getDisplayingContent() { + return displayingContentEClass; + } + + /** + * + * @generated + */ + public EOperation getDisplayingContent__GetSymbol() { + return displayingContentEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getDisplayingContent__GetUnderlyingType() { + return displayingContentEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getIsHidden() { + return isHiddenEClass; + } + + /** + * + * @generated + */ + public EOperation getIsHidden__GetSymbol() { + return isHiddenEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsHidden__GetUnderlyingType() { + return isHiddenEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getViewContentOperator() { + return viewContentOperatorEClass; + } + + /** + * + * @generated + */ + public EOperation getViewContentOperator__GetUnderlyingType() { + return viewContentOperatorEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getIsVisible() { + return isVisibleEClass; + } + + /** + * + * @generated + */ + public EOperation getIsVisible__GetSymbol() { + return isVisibleEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EClass getAllInstanceOfArea() { + return allInstanceOfAreaEClass; + } + + /** + * + * @generated + */ + public EOperation getAllInstanceOfArea__GetExpressionText() { + return allInstanceOfAreaEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getAllInstanceOfArea__GetUnderlyingType() { + return allInstanceOfAreaEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getAllInstanceOfViewContent() { + return allInstanceOfViewContentEClass; + } + + /** + * + * @generated + */ + public EOperation getAllInstanceOfViewContent__GetExpressionText() { + return allInstanceOfViewContentEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getAllInstanceOfViewContent__GetUnderlyingType() { + return allInstanceOfViewContentEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getIsDisplayedOn() { + return isDisplayedOnEClass; + } + + /** + * + * @generated + */ + public EOperation getIsDisplayedOn__GetSymbol() { + return isDisplayedOnEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsDisplayedOn__GetUnderlyingType() { + return isDisplayedOnEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getIsDisplayedOn__GetExpressionText() { + return isDisplayedOnEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getIsChangedDisplay() { + return isChangedDisplayEClass; + } + + /** + * + * @generated + */ + public EOperation getIsChangedDisplay__GetSymbol() { + return isChangedDisplayEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsChangedDisplay__GetUnderlyingType() { + return isChangedDisplayEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EClass getIsTranslatedViewTo() { + return isTranslatedViewToEClass; + } + + /** + * + * @generated + */ + public EOperation getIsTranslatedViewTo__GetSymbol() { + return isTranslatedViewToEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getIsTranslatedViewTo__GetUnderlyingType() { + return isTranslatedViewToEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getIsTranslatedViewTo__GetExpressionText() { + return isTranslatedViewToEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EClass getHideLowerPriority() { + return hideLowerPriorityEClass; + } + + /** + * + * @generated + */ + public EOperation getHideLowerPriority__GetSymbol() { + return hideLowerPriorityEClass.getEOperations().get(0); + } + + /** + * + * @generated + */ + public EOperation getHideLowerPriority__GetUnderlyingType() { + return hideLowerPriorityEClass.getEOperations().get(1); + } + + /** + * + * @generated + */ + public EOperation getHideLowerPriority__GetExpressionText() { + return hideLowerPriorityEClass.getEOperations().get(2); + } + + /** + * + * @generated + */ + public EEnum getBasePoint() { + return basePointEEnum; + } + + /** + * + * @generated + */ + public RBAViewFactory getRBAViewFactory() { + return (RBAViewFactory) getEFactoryInstance(); + } + + /** + * + * @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. + * + * @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); + } + + /** + * + * @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. + * + * @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 http://www.eclipse.org/OCL/Import. + * + * @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; + +/** + * An implementation of the model object 'Size Identifier'. + * + * @generated + */ +public abstract class SizeIdentifierImpl extends MinimalEObjectImpl.Container implements SizeIdentifier { + /** + * + * @generated + */ + protected SizeIdentifierImpl() { + super(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Size'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.view.impl.SizeImpl#getWidth Width}
  • + *
  • {@link rba.view.impl.SizeImpl#getHeight Height}
  • + *
+ * + * @generated + */ +public class SizeImpl extends PackagableElementImpl implements Size { + /** + * The default value of the '{@link #getWidth() Width}' attribute. + * + * @see #getWidth() + * @generated + * @ordered + */ + protected static final int WIDTH_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getWidth() Width}' attribute. + * + * @see #getWidth() + * @generated + * @ordered + */ + protected int width = WIDTH_EDEFAULT; + + /** + * This is true if the Width attribute has been set. + * + * @generated + * @ordered + */ + protected boolean widthESet; + + /** + * The default value of the '{@link #getHeight() Height}' attribute. + * + * @see #getHeight() + * @generated + * @ordered + */ + protected static final int HEIGHT_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getHeight() Height}' attribute. + * + * @see #getHeight() + * @generated + * @ordered + */ + protected int height = HEIGHT_EDEFAULT; + + /** + * This is true if the Height attribute has been set. + * + * @generated + * @ordered + */ + protected boolean heightESet; + + /** + * + * @generated + */ + protected SizeImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.SIZE; + } + + /** + * + * @generated + */ + public int getWidth() { + return width; + } + + /** + * + * @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)); + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public boolean isSetWidth() { + return widthESet; + } + + /** + * + * @generated + */ + public int getHeight() { + return height; + } + + /** + * + * @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)); + } + + /** + * + * @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)); + } + + /** + * + * @generated + */ + public boolean isSetHeight() { + return heightESet; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBAViewPackage.SIZE__WIDTH: + unsetWidth(); + return; + case RBAViewPackage.SIZE__HEIGHT: + unsetHeight(); + return; + } + super.eUnset(featureID); + } + + /** + * + * @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); + } + + /** + * + * @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(""); + result.append(", height: "); + if (heightESet) + result.append(height); + else + result.append(""); + 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; + +/** + * An implementation of the model object 'Size Reference'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.view.impl.SizeReferenceImpl#getSize Size}
  • + *
+ * + * @generated + */ +public class SizeReferenceImpl extends SizeIdentifierImpl implements SizeReference { + /** + * The cached value of the '{@link #getSize() Size}' reference. + * + * @see #getSize() + * @generated + * @ordered + */ + protected Size size; + + /** + * + * @generated + */ + protected SizeReferenceImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.SIZE_REFERENCE; + } + + /** + * + * @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; + } + + /** + * + * @generated + */ + public Size basicGetSize() { + return size; + } + + /** + * + * @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)); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBAViewPackage.SIZE_REFERENCE__SIZE: + setSize((Size) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBAViewPackage.SIZE_REFERENCE__SIZE: + setSize((Size) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'Vertical Layout'. + * + * @generated + */ +public class VerticalLayoutImpl extends AlignedLayoutImpl implements VerticalLayout { + /** + * + * @generated + */ + protected VerticalLayoutImpl() { + super(); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'View Content'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link rba.view.impl.ViewContentImpl#getSize Size}
  • + *
+ * + * @generated + */ +public class ViewContentImpl extends ContentImpl implements ViewContent { + /** + * The cached value of the '{@link #getSize() Size}' containment reference list. + * + * @see #getSize() + * @generated + * @ordered + */ + protected EList size; + + /** + * + * @generated + */ + protected ViewContentImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.VIEW_CONTENT; + } + + /** + * + * @generated + */ + public EList getSize() { + if (size == null) { + size = new EObjectContainmentEList(SizeIdentifier.class, this, + RBAViewPackage.VIEW_CONTENT__SIZE); + } + return size; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.CONTENT; + } + + /** + * + * @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); + } + + /** + * + * @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); + } + + /** + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case RBAViewPackage.VIEW_CONTENT__SIZE: + getSize().clear(); + getSize().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case RBAViewPackage.VIEW_CONTENT__SIZE: + getSize().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case RBAViewPackage.VIEW_CONTENT__SIZE: + return size != null && !size.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * @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; + +/** + * An implementation of the model object 'View Content Operator'. + * + * @generated + */ +public abstract class ViewContentOperatorImpl extends ContentOperatorImpl implements ViewContentOperator { + /** + * + * @generated + */ + protected ViewContentOperatorImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.VIEW_CONTENT_OPERATOR; + } + + /** + * + * @generated + */ + public ExpressionType getUnderlyingType() { + return ExpressionType.BOOLEAN; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'View Content Set'. + * + * @generated + */ +public class ViewContentSetImpl extends ContentSetImpl implements ViewContentSet { + /** + * + * @generated + */ + protected ViewContentSetImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.VIEW_CONTENT_SET; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.SET_OF_CONTENT; + } + + /** + * + * @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; + +/** + * An implementation of the model object 'View Content State'. + * + * @generated + */ +public class ViewContentStateImpl extends ContentStateImpl implements ViewContentState { + /** + * + * @generated + */ + protected ViewContentStateImpl() { + super(); + } + + /** + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return RBAViewPackage.Literals.VIEW_CONTENT_STATE; + } + + /** + * + * @generated + */ + public ExpressionType getExpressionType() { + return ExpressionType.CONTENT_STATE; + } + + /** + * + * @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.*; + +/** + * The Adapter Factory for the model. It provides an adapter createXXX method for + * each class of the model. + * @see rba.view.RBAViewPackage + * @generated + */ +public class RBAViewAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * + * @generated + */ + protected static RBAViewPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * @generated + */ + public RBAViewAdapterFactory() { + if (modelPackage == null) { + modelPackage = RBAViewPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * This implementation + * returns true if the object is either the model's package or is an instance object of the model. + * @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 createXXX methods. + * + * @generated + */ + protected RBAViewSwitch modelSwitch = new RBAViewSwitch() { + @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 target. + * + * @param target the object to adapt. + * @return the adapter for the target. + * @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 View Content}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 View Content Set}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 View Content State}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Layout Manager}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Aligned Layout}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Vertical Layout}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Horizontal Layout}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Fixed Position Layout}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Position Container}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Display}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Composite Area}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Area}'. + * This default + * implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance will catch + * all the cases anyway. + * @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 Area Set}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Size Identifier}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Size}'. + * This default + * implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance will catch + * all the cases anyway. + * @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 Size Reference}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Offset}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Area Operator}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Is Displayed}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Displaying Content}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is Hidden}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 View Content Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is Visible}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 All Instance Of Area}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 All Instance Of View Content}'. + * This default implementation returns null so that we can easily ignore cases; it's + * useful to ignore a case when inheritance will catch all the cases anyway. + * @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 Is Displayed On}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is Changed Display}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Is Translated View To}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Hide Lower Priority}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Model Element}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Named Element}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Packagable Element}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Rule Object}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Abstract Content}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Content}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Content Set}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Content State}'. + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Abstract Allocatable}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Allocatable}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Allocatable Set}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when + * inheritance will catch all the cases anyway. + * @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 Operator}'. + * This + * default implementation returns null so that we can easily ignore cases; it's useful to ignore a case when inheritance + * will catch all the cases anyway. + * @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 Allocatable Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Content Operator}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Set Expression}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Sugar Expression}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @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 Sugar Expression Base}'. This default implementation returns null so that we can easily ignore cases; it's useful to ignore a + * case when inheritance will catch all the cases anyway. + * @return the new adapter. + * @see rba.core.SugarExpressionBase + * @generated + */ + public Adapter createSugarExpressionBaseAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * This default implementation returns null. + * @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.*; + +/** + * The Switch for the model's inheritance hierarchy. It supports the call + * {@link #doSwitch(EObject) doSwitch(object)} to invoke the caseXXX 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. + * @see rba.view.RBAViewPackage + * @generated + */ +public class RBAViewSwitch extends Switch { + /** + * The cached model package + * + * @generated + */ + protected static RBAViewPackage modelPackage; + + /** + * Creates an instance of the switch. + * + * @generated + */ + public RBAViewSwitch() { + if (modelPackage == null) { + modelPackage = RBAViewPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * + * @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 caseXXX for each class of the model until one returns a non null result; it yields that result. + * @return the first non-null result returned by a caseXXX 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 'View Content'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'View Content'. + * @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 'View Content Set'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'View Content Set'. + * @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 'View Content State'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'View Content State'. + * @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 'Layout Manager'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Layout Manager'. + * @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 'Aligned Layout'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Aligned Layout'. + * @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 'Vertical Layout'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Vertical Layout'. + * @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 'Horizontal Layout'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Horizontal Layout'. + * @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 'Fixed Position Layout'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Fixed Position Layout'. + * @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 'Position Container'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Position Container'. + * @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 'Display'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Display'. + * @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 'Composite Area'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Composite Area'. + * @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 'Area'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Area'. + * @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 'Area Set'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Area Set'. + * @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 'Size Identifier'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Size Identifier'. + * @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 'Size'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Size'. + * @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 'Size Reference'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Size Reference'. + * @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 'Offset'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Offset'. + * @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 'Area Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Area Operator'. + * @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 'Is Displayed'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Displayed'. + * @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 'Displaying Content'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Displaying Content'. + * @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 'Is Hidden'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Hidden'. + * @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 'View Content Operator'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'View Content Operator'. + * @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 'Is Visible'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Visible'. + * @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 'All Instance Of Area'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'All Instance Of Area'. + * @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 'All Instance Of View Content'. This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'All Instance Of View Content'. + * @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 'Is Displayed On'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Displayed On'. + * @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 'Is Changed Display'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Changed Display'. + * @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 'Is Translated View To'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Is Translated View To'. + * @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 'Hide Lower Priority'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Hide Lower Priority'. + * @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 'Model Element'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Model Element'. + * @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 'Named Element'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Named Element'. + * @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 'Packagable Element'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Packagable Element'. + * @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 'Rule Object'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Rule Object'. + * @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 'Abstract Content'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Abstract Content'. + * @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 'Content'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content'. + * @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 'Content Set'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content Set'. + * @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 'Content State'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content State'. + * @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 'Abstract Allocatable'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Abstract Allocatable'. + * @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 'Allocatable'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Allocatable'. + * @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 'Allocatable Set'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Allocatable Set'. + * @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 'Expression'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Expression'. + * @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 'Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Operator'. + * @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 'Allocatable Operator'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Allocatable Operator'. + * @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 'Content Operator'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content Operator'. + * @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 'Set Expression'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Set Expression'. + * @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 'Sugar Expression'. + * This + * implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Sugar Expression'. + * @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 'Sugar Expression Base'. + * + * This implementation returns null; returning a non-null result will terminate the switch. + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Sugar Expression Base'. + * @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 'EObject'. + * This + * implementation returns null; returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'EObject'. + * @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 @@ + + + + + + + + + + + + + + + + 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 @@ + + + rba.tool.core + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + 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 Binary files /dev/null and b/rba.tool.core/icons/info.png differ diff --git a/rba.tool.core/icons/rba.gif b/rba.tool.core/icons/rba.gif new file mode 100644 index 0000000..dcabada Binary files /dev/null and b/rba.tool.core/icons/rba.gif differ diff --git a/rba.tool.core/icons/rbaSim.gif b/rba.tool.core/icons/rbaSim.gif new file mode 100644 index 0000000..6523099 Binary files /dev/null and b/rba.tool.core/icons/rbaSim.gif 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 Binary files /dev/null and b/rba.tool.core/lib/groovy-all-2.4.12-indy.jar 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. + + // / + // / The following axiom is produced: + // / + // / forall (x_0, ..., x_n) finv(f(x_0, ..., x_i, ..., x_{n-1})) = x_i + // / + // / Where, finvis 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. + + // / + // / The following axiom is produced: + // / + // / forall (x_0, ..., x_n) finv(f(x_0, ..., x_i, ..., x_{n-1})) = x_i + // / + // / Where, finvis 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. + + // / + // / This example uses the SMT-LIB parser to simplify the axiom + // construction. + // / + 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 store(a1, i1, v1) = store(a2, i2, v2) implies (i1 = i3 or i2 + // = i3 or select(a1, i3) = select(a2, i3)). + + // / This example demonstrates how to use the array + // theory. + 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 distinct(a_0, ... , a_n) is + // / unsatisfiable when a_i's are arrays from boolean to + // / boolean and n > 4. + + // / This example also shows how to use the distinct + // construct. + 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 f(x, y) = f(w, v) implies y = v when + // / f is injective in the second argument. + + 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 f(x, y) = f(w, v) implies y = v when + // / f is injective in the second argument. + + 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 cfg = new HashMap(); + 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 cfg = new HashMap(); + 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 q = new LinkedList(); + 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 x xor y. + + 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 x < y + 1, x > 2. + // / Then, assert not(x = y), 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 x = y implies g(x) = g(y), and + // / disprove x = y implies g(g(x)) = g(y). + + // / This function demonstrates how to create uninterpreted + // / types and functions. + 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 not(g(g(x) - g(y)) = g(z)), x + z <= y <= x implies z < 0 + // . + // / Then, show that z < -1 is not implied. + + // / This example demonstrates how to combine uninterpreted + // functions + // / and arithmetic. + 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. + + // / This example also demonstrates how big numbers can be + // / created in ctx. + 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. + + // / Check that the projection of a tuple + // / returns the corresponding element. + 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. + + // / + // / This example disproves that x - 10 <= 0 IFF x <= 10 for (32-bit) + // machine integers + // / + 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. + + // / + 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. + + // / + // / forest ::= nil | cons(tree, forest) + // / tree ::= nil | cons(forest, forest) + // / + 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 Pushand Popto + // / control the size of models. + + // / Note: this test is specialized to 32-bit bitvectors. + 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 cfg = new HashMap(); + 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 cfg = new HashMap(); + 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 cfg = new HashMap(); + 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 Binary files /dev/null and b/rba.tool.core/lib/z3/Microsoft.Z3.dll 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 @@ + + + + Microsoft.Z3 + + + + + Algebraic numbers + + + + + Arithmetic expressions (int/real) + + + + + Expressions are terms. + + + + + The abstract syntax tree (AST) class. + + + + + Internal base class for interfacing with native Z3 objects. + Should not be used externally. + + + + + Finalizer. + + + + + Disposes of the underlying native Z3 object. + + + + + Comparison operator. + + An AST + An AST + True if and are from the same context + and represent the same sort; false otherwise. + + + + Comparison operator. + + An AST + An AST + True if and are not from the same context + or represent different sorts; false otherwise. + + + + Object comparison. + + + + + Object Comparison. + + Another AST + Negative if the object should be sorted before , positive if after else zero. + + + + The AST's hash code. + + A hash code + + + + Translates (copies) the AST to the Context . + + A context + A copy of the AST which is associated with + + + + A string representation of the AST. + + + + + A string representation of the AST in s-expression notation. + + + + + A unique identifier for the AST (unique among all ASTs). + + + + + The kind of the AST. + + + + + Indicates whether the AST is an Expr + + + + + Indicates whether the AST is an application + + + + + Indicates whether the AST is a BoundVariable + + + + + Indicates whether the AST is a Quantifier + + + + + Indicates whether the AST is a Sort + + + + + Indicates whether the AST is a FunctionDeclaration + + + + + DecRefQueue interface + + + + + Sets the limit on numbers of objects that are kept back at GC collection. + + + + + + Returns a simplified version of the expression. + + A set of parameters to configure the simplifier + + + + + Update the arguments of the expression using the arguments + The number of new arguments should coincide with the current number of arguments. + + + + + Substitute every occurrence of from[i] in the expression with to[i], for i smaller than num_exprs. + + + The result is the new expression. The arrays from and to must have size num_exprs. + For every i smaller than num_exprs, we must have that + sort of from[i] must be equal to sort of to[i]. + + + + + Substitute every occurrence of from in the expression with to. + + + + + + Substitute the free variables in the expression with the expressions in + + + For every i smaller than num_exprs, the variable with de-Bruijn index i is replaced with term to[i]. + + + + + Translates (copies) the term to the Context . + + A context + A copy of the term which is associated with + + + + Returns a string representation of the expression. + + + + + Constructor for Expr + + + + + The function declaration of the function that is applied in this expression. + + + + + Indicates whether the expression is the true or false expression + or something else (Z3_L_UNDEF). + + + + + The number of arguments of the expression. + + + + + The arguments of the expression. + + + + + Indicates whether the term is a numeral + + + + + Indicates whether the term is well-sorted. + + True if the term is well-sorted, false otherwise. + + + + The Sort of the term. + + + + + Indicates whether the term represents a constant. + + + + + Indicates whether the term is an integer numeral. + + + + + Indicates whether the term is a real numeral. + + + + + Indicates whether the term is an algebraic number + + + + + Indicates whether the term has Boolean sort. + + + + + Indicates whether the term is the constant true. + + + + + Indicates whether the term is the constant false. + + + + + Indicates whether the term is an equality predicate. + + + + + Indicates whether the term is an n-ary distinct predicate (every argument is mutually distinct). + + + + + Indicates whether the term is a ternary if-then-else term + + + + + Indicates whether the term is an n-ary conjunction + + + + + Indicates whether the term is an n-ary disjunction + + + + + Indicates whether the term is an if-and-only-if (Boolean equivalence, binary) + + + + + Indicates whether the term is an exclusive or + + + + + Indicates whether the term is a negation + + + + + Indicates whether the term is an implication + + + + + Indicates whether the term is marked for interpolation. + + + + + + Indicates whether the term is of integer sort. + + + + + Indicates whether the term is of sort real. + + + + + Indicates whether the term is an arithmetic numeral. + + + + + Indicates whether the term is a less-than-or-equal + + + + + Indicates whether the term is a greater-than-or-equal + + + + + Indicates whether the term is a less-than + + + + + Indicates whether the term is a greater-than + + + + + Indicates whether the term is addition (binary) + + + + + Indicates whether the term is subtraction (binary) + + + + + Indicates whether the term is a unary minus + + + + + Indicates whether the term is multiplication (binary) + + + + + Indicates whether the term is division (binary) + + + + + Indicates whether the term is integer division (binary) + + + + + Indicates whether the term is remainder (binary) + + + + + Indicates whether the term is modulus (binary) + + + + + Indicates whether the term is a coercion of integer to real (unary) + + + + + Indicates whether the term is a coercion of real to integer (unary) + + + + + Indicates whether the term is a check that tests whether a real is integral (unary) + + + + + Indicates whether the term is of an array sort. + + + + + Indicates whether the term is an array store. + + It satisfies select(store(a,i,v),j) = if i = j then v else select(a,j). + Array store takes at least 3 arguments. + + + + Indicates whether the term is an array select. + + + + + Indicates whether the term is a constant array. + + For example, select(const(v),i) = v holds for every v and i. The function is unary. + + + + Indicates whether the term is a default array. + + For example default(const(v)) = v. The function is unary. + + + + Indicates whether the term is an array map. + + It satisfies map[f](a1,..,a_n)[i] = f(a1[i],...,a_n[i]) for every i. + + + + Indicates whether the term is an as-array term. + + An as-array term is n array value that behaves as the function graph of the + function passed as parameter. + + + + Indicates whether the term is set union + + + + + Indicates whether the term is set intersection + + + + + Indicates whether the term is set difference + + + + + Indicates whether the term is set complement + + + + + Indicates whether the term is set subset + + + + + Indicates whether the terms is of bit-vector sort. + + + + + Indicates whether the term is a bit-vector numeral + + + + + Indicates whether the term is a one-bit bit-vector with value one + + + + + Indicates whether the term is a one-bit bit-vector with value zero + + + + + Indicates whether the term is a bit-vector unary minus + + + + + Indicates whether the term is a bit-vector addition (binary) + + + + + Indicates whether the term is a bit-vector subtraction (binary) + + + + + Indicates whether the term is a bit-vector multiplication (binary) + + + + + Indicates whether the term is a bit-vector signed division (binary) + + + + + Indicates whether the term is a bit-vector unsigned division (binary) + + + + + Indicates whether the term is a bit-vector signed remainder (binary) + + + + + Indicates whether the term is a bit-vector unsigned remainder (binary) + + + + + Indicates whether the term is a bit-vector signed modulus + + + + + Indicates whether the term is a bit-vector signed division by zero + + + + + Indicates whether the term is a bit-vector unsigned division by zero + + + + + Indicates whether the term is a bit-vector signed remainder by zero + + + + + Indicates whether the term is a bit-vector unsigned remainder by zero + + + + + Indicates whether the term is a bit-vector signed modulus by zero + + + + + Indicates whether the term is an unsigned bit-vector less-than-or-equal + + + + + Indicates whether the term is a signed bit-vector less-than-or-equal + + + + + Indicates whether the term is an unsigned bit-vector greater-than-or-equal + + + + + Indicates whether the term is a signed bit-vector greater-than-or-equal + + + + + Indicates whether the term is an unsigned bit-vector less-than + + + + + Indicates whether the term is a signed bit-vector less-than + + + + + Indicates whether the term is an unsigned bit-vector greater-than + + + + + Indicates whether the term is a signed bit-vector greater-than + + + + + Indicates whether the term is a bit-wise AND + + + + + Indicates whether the term is a bit-wise OR + + + + + Indicates whether the term is a bit-wise NOT + + + + + Indicates whether the term is a bit-wise XOR + + + + + Indicates whether the term is a bit-wise NAND + + + + + Indicates whether the term is a bit-wise NOR + + + + + Indicates whether the term is a bit-wise XNOR + + + + + Indicates whether the term is a bit-vector concatenation (binary) + + + + + Indicates whether the term is a bit-vector sign extension + + + + + Indicates whether the term is a bit-vector zero extension + + + + + Indicates whether the term is a bit-vector extraction + + + + + Indicates whether the term is a bit-vector repetition + + + + + Indicates whether the term is a bit-vector reduce OR + + + + + Indicates whether the term is a bit-vector reduce AND + + + + + Indicates whether the term is a bit-vector comparison + + + + + Indicates whether the term is a bit-vector shift left + + + + + Indicates whether the term is a bit-vector logical shift right + + + + + Indicates whether the term is a bit-vector arithmetic shift left + + + + + Indicates whether the term is a bit-vector rotate left + + + + + Indicates whether the term is a bit-vector rotate right + + + + + Indicates whether the term is a bit-vector rotate left (extended) + + Similar to Z3_OP_ROTATE_LEFT, but it is a binary operator instead of a parametric one. + + + + Indicates whether the term is a bit-vector rotate right (extended) + + Similar to Z3_OP_ROTATE_RIGHT, but it is a binary operator instead of a parametric one. + + + + Indicates whether the term is a coercion from integer to bit-vector + + This function is not supported by the decision procedures. Only the most + rudimentary simplification rules are applied to this function. + + + + Indicates whether the term is a coercion from bit-vector to integer + + This function is not supported by the decision procedures. Only the most + rudimentary simplification rules are applied to this function. + + + + Indicates whether the term is a bit-vector carry + + Compute the carry bit in a full-adder. The meaning is given by the + equivalence (carry l1 l2 l3) <=> (or (and l1 l2) (and l1 l3) (and l2 l3))) + + + + Indicates whether the term is a bit-vector ternary XOR + + The meaning is given by the equivalence (xor3 l1 l2 l3) <=> (xor (xor l1 l2) l3) + + + + Indicates whether the term is a label (used by the Boogie Verification condition generator). + + The label has two parameters, a string and a Boolean polarity. It takes one argument, a formula. + + + + Indicates whether the term is a label literal (used by the Boogie Verification condition generator). + + A label literal has a set of string parameters. It takes no arguments. + + + + Indicates whether the term is a binary equivalence modulo namings. + + This binary predicate is used in proof terms. + It captures equisatisfiability and equivalence modulo renamings. + + + + Indicates whether the term is a Proof for the expression 'true'. + + + + + Indicates whether the term is a proof for a fact asserted by the user. + + + + + Indicates whether the term is a proof for a fact (tagged as goal) asserted by the user. + + + + + Indicates whether the term is proof via modus ponens + + + 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). + + + + Indicates whether the term is a proof for (R t t), where R is a reflexive relation. + + 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'. + + + + Indicates whether the term is proof by symmetricity of a relation + + + 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. + + + + + Indicates whether the term is a proof by transitivity of a relation + + + 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) + + + + + Indicates whether the term is a proof by condensed transitivity of a relation + + + 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. + + + + + Indicates whether the term is a monotonicity proof object. + + + 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. + + + + + Indicates whether the term is a quant-intro proof + + + 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)) + + + + + Indicates whether the term is a distributivity proof object. + + + 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. + + + + + Indicates whether the term is a proof by elimination of AND + + + 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 + + + + + Indicates whether the term is a proof by eliminiation of not-or + + + 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) + + + + + Indicates whether the term is a proof by rewriting + + + 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) + + + + + Indicates whether the term is a proof by rewriting + + + 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) + + + + + Indicates whether the term is a proof for pulling quantifiers out. + + + A proof for (iff (f (forall (x) q(x)) r) (forall (x) (f (q x) r))). This proof object has no antecedents. + + + + + Indicates whether the term is a proof for pulling quantifiers out. + + + 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 + + + + + Indicates whether the term is a proof for pushing quantifiers in. + + + 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 + + + + + Indicates whether the term is a proof for elimination of unused variables. + + + 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. + + + + + Indicates whether the term is a proof for destructive equality resolution + + + 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. + + + + + Indicates whether the term is a proof for quantifier instantiation + + + A proof of (or (not (forall (x) (P x))) (P a)) + + + + + Indicates whether the term is a hypthesis marker. + + Mark a hypothesis in a natural deduction style proof. + + + + Indicates whether the term is a proof by lemma + + + 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. + + + + + Indicates whether the term is a proof by unit resolution + + + 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') + + + + + Indicates whether the term is a proof by iff-true + + + T1: p + [iff-true T1]: (iff p true) + + + + + Indicates whether the term is a proof by iff-false + + + T1: (not p) + [iff-false T1]: (iff p false) + + + + + Indicates whether the term is a proof by commutativity + + + [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. + + + + + Indicates whether the term is a proof for Tseitin-like axioms + + + 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). + + + + + Indicates whether the term is a proof for introduction of a name + + + 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) + + + + + Indicates whether the term is a proof for application of a definition + + + [apply-def T1]: F ~ n + F is 'equivalent' to n, given that T1 is a proof that + n is a name for F. + + + + + Indicates whether the term is a proof iff-oeq + + + T1: (iff p q) + [iff~ T1]: (~ p q) + + + + + Indicates whether the term is a proof for a positive NNF step + + + 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'. + + + + + Indicates whether the term is a proof for a negative NNF step + + + 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'))) + + + + + Indicates whether the term is a proof for (~ P Q) here Q is in negation normal form. + + + 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. + + + + + Indicates whether the term is a proof for (~ P Q) where Q is in conjunctive normal form. + + + 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. + + + + + Indicates whether the term is a proof for a Skolemization step + + + 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. + + + + + Indicates whether the term is a proof by modus ponens for equi-satisfiability. + + + Modus ponens style rule for equi-satisfiability. + T1: p + T2: (~ p q) + [mp~ T1 T2]: q + + + + + Indicates whether the term is a proof for theory lemma + + + 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 (<= t1 t2) (<= t2 t1))) + - gcd-test - Indicates an integer linear arithmetic lemma that uses a gcd test. + + + + + Indicates whether the term is of relation sort. + + + + + Indicates whether the term is an relation store + + + Insert a record into a relation. + The function takes n+1 arguments, where the first argument is the relation and the remaining n elements + correspond to the n columns of the relation. + + + + + Indicates whether the term is an empty relation + + + + + Indicates whether the term is a test for the emptiness of a relation + + + + + Indicates whether the term is a relational join + + + + + Indicates whether the term is the union or convex hull of two relations. + + The function takes two arguments. + + + + Indicates whether the term is the widening of two relations + + The function takes two arguments. + + + + Indicates whether the term is a projection of columns (provided as numbers in the parameters). + + The function takes one argument. + + + + Indicates whether the term is a relation filter + + + 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. + + + + + Indicates whether the term is an intersection of a relation with the negation of another. + + + 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. + + + + + Indicates whether the term is the renaming of a column in a relation + + + The function takes one argument. + The parameters contain the renaming as a cycle. + + + + + Indicates whether the term is the complement of a relation + + + + + Indicates whether the term is a relational select + + + Check if a record is an element of the relation. + The function takes n+1 arguments, where the first argument is a relation, + and the remaining n arguments correspond to a record. + + + + + Indicates whether the term is a relational clone (copy) + + + 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 + to perform destructive updates to the first argument. + + + + + Indicates whether the term is of an array sort. + + + + + Indicates whether the term is a less than predicate over a finite domain. + + + + + Indicates whether the terms is of floating-point sort. + + + + + Indicates whether the terms is of floating-point rounding mode sort. + + + + + Indicates whether the term is a floating-point numeral + + + + + Indicates whether the term is a floating-point rounding mode numeral + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + Indicates whether the term is a floating-point rounding mode numeral + + + + + Indicates whether the term is a floating-point +oo + + + + + Indicates whether the term is a floating-point -oo + + + + + Indicates whether the term is a floating-point NaN + + + + + Indicates whether the term is a floating-point +zero + + + + + Indicates whether the term is a floating-point -zero + + + + + Indicates whether the term is a floating-point addition term + + + + + Indicates whether the term is a floating-point subtraction term + + + + + Indicates whether the term is a floating-point negation term + + + + + Indicates whether the term is a floating-point multiplication term + + + + + Indicates whether the term is a floating-point divison term + + + + + Indicates whether the term is a floating-point remainder term + + + + + Indicates whether the term is a floating-point term absolute value term + + + + + Indicates whether the term is a floating-point minimum term + + + + + Indicates whether the term is a floating-point maximum term + + + + + Indicates whether the term is a floating-point fused multiply-add term + + + + + Indicates whether the term is a floating-point square root term + + + + + Indicates whether the term is a floating-point roundToIntegral term + + + + + Indicates whether the term is a floating-point equality term + + + + + Indicates whether the term is a floating-point less-than term + + + + + Indicates whether the term is a floating-point greater-than term + + + + + Indicates whether the term is a floating-point less-than or equal term + + + + + Indicates whether the term is a floating-point greater-than or erqual term + + + + + Indicates whether the term is a floating-point isNaN predicate term + + + + + Indicates whether the term is a floating-point isInf predicate term + + + + + Indicates whether the term is a floating-point isZero predicate term + + + + + Indicates whether the term is a floating-point isNormal term + + + + + Indicates whether the term is a floating-point isSubnormal predicate term + + + + + Indicates whether the term is a floating-point isNegative predicate term + + + + + Indicates whether the term is a floating-point isPositive predicate term + + + + + Indicates whether the term is a floating-point constructor term + + + + + Indicates whether the term is a floating-point conversion term + + + + + Indicates whether the term is a floating-point conversion from unsigned bit-vector term + + + + + Indicates whether the term is a floating-point conversion to unsigned bit-vector term + + + + + Indicates whether the term is a floating-point conversion to signed bit-vector term + + + + + Indicates whether the term is a floating-point conversion to real term + + + + + Indicates whether the term is a floating-point conversion to IEEE-754 bit-vector term + + + + + The de-Burijn index of a bound variable. + + + 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. + + 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)) + + 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. + + + + Constructor for ArithExpr + + + Operator overloading for arithmetical divsion operator (over reals) + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + + Return a upper bound for a given real algebraic number. + The interval isolating the number is smaller than 1/10^. + + + the precision of the result + A numeral Expr of sort Real + + + + Return a lower bound for the given real algebraic number. + The interval isolating the number is smaller than 1/10^. + + + + A numeral Expr of sort Real + + + + Returns a string representation in decimal notation. + + The result has at most decimal places. + + + + ApplyResult objects represent the result of an application of a + tactic to a goal. It contains the subgoals that were produced. + + + + + Convert a model for the subgoal into a model for the original + goal g, that the ApplyResult was obtained from. + + A model for g + + + + A string representation of the ApplyResult. + + + + + The number of Subgoals. + + + + + Retrieves the subgoals from the ApplyResult. + + + + + An arithmetic sort, i.e., Int or Real. + + + + + The Sort class implements type information for ASTs. + + + + + Comparison operator. + + A Sort + A Sort + True if and are from the same context + and represent the same sort; false otherwise. + + + + Comparison operator. + + A Sort + A Sort + True if and are not from the same context + or represent different sorts; false otherwise. + + + + Equality operator for objects of type Sort. + + + + + + + Hash code generation for Sorts + + A hash code + + + + A string representation of the sort. + + + + + Sort constructor + + + + + Returns a unique identifier for the sort. + + + + + The kind of the sort. + + + + + The name of the sort + + + + + Array expressions + + + + Constructor for ArrayExpr + + + + Array sorts. + + + + + The domain of the array sort. + + + + + The range of the array sort. + + + + + Map from AST to AST + + + + + Checks whether the map contains the key . + + An AST + True if is a key in the map, false otherwise. + + + + Finds the value associated with the key . + + + This function signs an error when is not a key in the map. + + An AST + + + + Stores or replaces a new key/value pair in the map. + + The key AST + The value AST + + + + Erases the key from the map. + + An AST + + + + Removes all keys from the map. + + + + + Retrieves a string representation of the map. + + + + + The size of the map + + + + + The keys stored in the map. + + + + + Vectors of ASTs. + + + + + Resize the vector to . + + The new size of the vector. + + + + Add the AST to the back of the vector. The size + is increased by 1. + + An AST + + + + Translates all ASTs in the vector to . + + A context + A new ASTVector + + + + Retrieves a string representation of the vector. + + + + + Translates an AST vector into an AST[] + + + + + Translates an ASTVector into an Expr[] + + + + + Translates an ASTVector into a BoolExpr[] + + + + + Translates an ASTVector into a BitVecExpr[] + + + + + Translates an ASTVector into a ArithExpr[] + + + + + Translates an ASTVector into a ArrayExpr[] + + + + + Translates an ASTVector into a DatatypeExpr[] + + + + + Translates an ASTVector into a FPExpr[] + + + + + Translates an ASTVector into a FPRMExpr[] + + + + + Translates an ASTVector into a IntExpr[] + + + + + Translates an ASTVector into a RealExpr[] + + + + + The size of the vector + + + + + Retrieves the i-th object in the vector. + + May throw an IndexOutOfBoundsException when is out of range. + Index + An AST + + + + Bit-vector expressions + + + + Constructor for BitVecExpr + + + + The size of the sort of a bit-vector term. + + + + + Bit-vector numerals + + + + + Returns a string representation of the numeral. + + + + + Retrieve the 64-bit unsigned integer value. + + + + + Retrieve the int value. + + + + + Retrieve the 64-bit int value. + + + + + Retrieve the int value. + + + + + Retrieve the BigInteger value. + + + + + Bit-vector sorts. + + + + + The size of the bit-vector sort. + + + + + Boolean expressions + + + + Constructor for BoolExpr + + + Disjunction of Boolean expressions + + + Conjunction of Boolean expressions + + + Xor of Boolean expressions + + + Negation + + + + A Boolean sort. + + + + + Constructors are used for datatype sorts. + + + + + Destructor. + + + + + The number of fields of the constructor. + + + + + The function declaration of the constructor. + + + + + The function declaration of the tester. + + + + + The function declarations of the accessors + + + + + Lists of constructors + + + + + Destructor. + + + + + The main interaction with Z3 happens via the Context. + + + + + Constructor. + + + + + Constructor. + + + 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 + + + + + Creates a new symbol using an integer. + + + Not all integers can be passed to this function. + The legal range of unsigned integers is 0 to 2^30-1. + + + + + Create a symbol using a string. + + + + + Create an array of symbols. + + + + + Create a new Boolean sort. + + + + + Create a new uninterpreted sort. + + + + + Create a new uninterpreted sort. + + + + + Create a new integer sort. + + + + + Create a real sort. + + + + + Create a new bit-vector sort. + + + + + Create a new sequence sort. + + + + + Create a new regular expression sort. + + + + + Create a new array sort. + + + + + Create a new tuple sort. + + + + + Create a new enumeration sort. + + + + + Create a new enumeration sort. + + + + + Create a new list sort. + + + + + Create a new list sort. + + + + + Create a new finite domain sort. + The result is a sort + + The name used to identify the sort + The size of the sort + + + + Create a new finite domain sort. + The result is a sort + Elements of the sort are created using , + and the elements range from 0 to size-1. + + The name used to identify the sort + The size of the sort + + + + Create a datatype constructor. + + constructor name + name of recognizer function. + names of the constructor fields. + field sorts, 0 if the field sort refers to a recursive sort. + 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. + + + + Create a datatype constructor. + + + + + + + + + + + Create a new datatype sort. + + + + + Create a new datatype sort. + + + + + Create mutually recursive datatypes. + + names of datatype sorts + list of constructors, one list per sort. + + + + Create mutually recursive data-types. + + + + + + + + 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. + + + + + Creates a new function declaration. + + + + + Creates a new function declaration. + + + + + Creates a new function declaration. + + + + + Creates a new function declaration. + + + + + Creates a fresh function declaration with a name prefixed with . + + + + + + + Creates a new constant function declaration. + + + + + Creates a new constant function declaration. + + + + + Creates a fresh constant function declaration with a name prefixed with . + + + + + + + Creates a new bound variable. + + The de-Bruijn index of the variable + The sort of the variable + + + + Create a quantifier pattern. + + + + + Creates a new Constant of sort and named . + + + + + Creates a new Constant of sort and named . + + + + + Creates a fresh Constant of sort and a + name prefixed with . + + + + + Creates a fresh constant from the FuncDecl . + + A decl of a 0-arity function + + + + Create a Boolean constant. + + + + + Create a Boolean constant. + + + + + Creates an integer constant. + + + + + Creates an integer constant. + + + + + Creates a real constant. + + + + + Creates a real constant. + + + + + Creates a bit-vector constant. + + + + + Creates a bit-vector constant. + + + + + Create a new function application. + + + + + Create a new function application. + + + + + The true Term. + + + + + The false Term. + + + + + Creates a Boolean value. + + + + + Creates the equality = . + + + + + Creates a distinct term. + + + + + Mk an expression representing not(a). + + + + + Create an expression representing an if-then-else: ite(t1, t2, t3). + + An expression with Boolean sort + An expression + An expression with the same sort as + + + + Create an expression representing t1 iff t2. + + + + + Create an expression representing t1 -> t2. + + + + + Create an expression representing t1 xor t2. + + + + + Create an expression representing t[0] and t[1] and .... + + + + + Create an expression representing t[0] and t[1] and .... + + + + + Create an expression representing t[0] or t[1] or .... + + + + + Create an expression representing t[0] or t[1] or .... + + + + + Create an expression representing t[0] + t[1] + .... + + + + + Create an expression representing t[0] + t[1] + .... + + + + + Create an expression representing t[0] * t[1] * .... + + + + + Create an expression representing t[0] * t[1] * .... + + + + + Create an expression representing t[0] - t[1] - .... + + + + + Create an expression representing -t. + + + + + Create an expression representing t1 / t2. + + + + + Create an expression representing t1 mod t2. + + The arguments must have int type. + + + + Create an expression representing t1 rem t2. + + The arguments must have int type. + + + + Create an expression representing t1 ^ t2. + + + + + Create an expression representing t1 < t2 + + + + + Create an expression representing t1 <= t2 + + + + + Create an expression representing t1 > t2 + + + + + Create an expression representing t1 >= t2 + + + + + Coerce an integer to a real. + + + 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 k and + and asserting MakeInt2Real(k) <= t1 < MkInt2Real(k)+1. + The argument must be of integer sort. + + + + + Coerce a real to an integer. + + + The semantics of this function follows the SMT-LIB standard for the function to_int. + The argument must be of real sort. + + + + + Creates an expression that checks whether a real number is an integer. + + + + + Bitwise negation. + + The argument must have a bit-vector sort. + + + + Take conjunction of bits in a vector, return vector of length 1. + + The argument must have a bit-vector sort. + + + + Take disjunction of bits in a vector, return vector of length 1. + + The argument must have a bit-vector sort. + + + + Bitwise conjunction. + + The arguments must have a bit-vector sort. + + + + Bitwise disjunction. + + The arguments must have a bit-vector sort. + + + + Bitwise XOR. + + The arguments must have a bit-vector sort. + + + + Bitwise NAND. + + The arguments must have a bit-vector sort. + + + + Bitwise NOR. + + The arguments must have a bit-vector sort. + + + + Bitwise XNOR. + + The arguments must have a bit-vector sort. + + + + Standard two's complement unary minus. + + The arguments must have a bit-vector sort. + + + + Two's complement addition. + + The arguments must have the same bit-vector sort. + + + + Two's complement subtraction. + + The arguments must have the same bit-vector sort. + + + + Two's complement multiplication. + + The arguments must have the same bit-vector sort. + + + + Unsigned division. + + + It is defined as the floor of t1/t2 if \c t2 is + different from zero. If t2 is zero, then the result + is undefined. + The arguments must have the same bit-vector sort. + + + + + Signed division. + + + It is defined in the following way: + + - The \c floor of t1/t2 if \c t2 is different from zero, and t1*t2 >= 0. + + - The \c ceiling of t1/t2 if \c t2 is different from zero, and t1*t2 < 0. + + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Unsigned remainder. + + + It is defined as t1 - (t1 /u t2) * t2, where /u represents unsigned division. + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Signed remainder. + + + It is defined as t1 - (t1 /s t2) * t2, where /s represents signed division. + The most significant bit (sign) of the result is equal to the most significant bit of \c t1. + + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Two's complement signed remainder (sign follows divisor). + + + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Unsigned less-than + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed less-than + + + The arguments must have the same bit-vector sort. + + + + + Unsigned less-than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed less-than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Unsigned greater than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed greater than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Unsigned greater-than. + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed greater-than. + + + The arguments must have the same bit-vector sort. + + + + + Bit-vector concatenation. + + + The arguments must have a bit-vector sort. + + + The result is a bit-vector of size n1+n2, where n1 (n2) + is the size of t1 (t2). + + + + + Bit-vector extraction. + + + Extract the bits down to from a bitvector of + size m to yield a new bitvector of size n, where + n = high - low + 1. + The argument must have a bit-vector sort. + + + + + Bit-vector sign extension. + + + Sign-extends the given bit-vector to the (signed) equivalent bitvector of + size m+i, where \c m is the size of the given bit-vector. + The argument must have a bit-vector sort. + + + + + Bit-vector zero extension. + + + Extend the given bit-vector with zeros to the (unsigned) equivalent + bitvector of size m+i, where \c m is the size of the + given bit-vector. + The argument must have a bit-vector sort. + + + + + Bit-vector repetition. + + + The argument must have a bit-vector sort. + + + + + Shift left. + + + It is equivalent to multiplication by 2^x where \c x is the value of . + + 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. + + + + + Logical shift right + + + It is equivalent to unsigned division by 2^x where \c x is the value of . + + 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. + + + + + Arithmetic shift right + + + 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. + + + + + Rotate Left. + + + Rotate bits of \c t to the left \c i times. + The argument must have a bit-vector sort. + + + + + Rotate Right. + + + Rotate bits of \c t to the right \c i times. + The argument must have a bit-vector sort. + + + + + Rotate Left. + + + Rotate bits of to the left times. + The arguments must have the same bit-vector sort. + + + + + Rotate Right. + + + Rotate bits of to the right times. + The arguments must have the same bit-vector sort. + + + + + Create an bit bit-vector from the integer argument . + + + 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. + + + + + Create an integer from the bit-vector argument . + + + 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 [0..2^N-1], where + N are the number of bits in . + 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. + + + + + Create a predicate that checks that the bit-wise addition does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise addition does not underflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise subtraction does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise subtraction does not underflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise signed division does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise negation does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise multiplication does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise multiplication does not underflow. + + + The arguments must be of bit-vector sort. + + + + + Create an array constant. + + + + + Create an array constant. + + + + + Array read. + + + The argument a is the array and i is the index + of the array that gets read. + + The node a must have an array sort [domain -> range], + and i must have the sort domain. + The sort of the result is range. + + + + + + + Array update. + + + The node a must have an array sort [domain -> range], + i must have sort domain, + v must have sort range. The sort of the result is [domain -> range]. + 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 a + (with respect to select) + on all indices except for i, where it maps to v + (and the select of a with + respect to i may be a different value). + + + + + + + Create a constant array. + + + The resulting term is an array, such that a selecton an arbitrary index + produces the value v. + + + + + + + Maps f on the argument arrays. + + + Eeach element of args must be of an array sort [domain_i -> range_i]. + The function declaration f must have type range_1 .. range_n -> range. + v must have sort range. The sort of the result is [domain_i -> range]. + + + + + + + + Access the array default value. + + + Produces the default range value, for arrays that can be represented as + finite maps with a default range value. + + + + + Create Extentionality index. Two arrays are equal if and only if they are equal on the index returned by MkArrayExt. + + + + + Create a set type. + + + + + Create an empty set. + + + + + Create the full set. + + + + + Add an element to the set. + + + + + Remove an element from a set. + + + + + Take the union of a list of sets. + + + + + Take the intersection of a list of sets. + + + + + Take the difference between two sets. + + + + + Take the complement of a set. + + + + + Check for set membership. + + + + + Check for subsetness of sets. + + + + + Create the empty sequence. + + + + + Create the singleton sequence. + + + + + Create a string constant. + + + + + Concatentate sequences. + + + + + Retrieve the length of a given sequence. + + + + + Check for sequence prefix. + + + + + Check for sequence suffix. + + + + + Check for sequence containment of s2 in s1. + + + + + Retrieve sequence of length one at index. + + + + + Extract subsequence. + + + + + Extract index of sub-string starting at offset. + + + + + Replace the first occurrence of src by dst in s. + + + + + Convert a regular expression that accepts sequence s. + + + + + Check for regular expression membership. + + + + + Take the Kleene star of a regular expression. + + + + + Take the Kleene plus of a regular expression. + + + + + Create the optional regular expression. + + + + + Create the concatenation of regular languages. + + + + + Create the union of regular languages. + + + + + Create an at-most-k constraint. + + + + + Create a pseudo-Boolean less-or-equal constraint. + + + + + Create a pseudo-Boolean equal constraint. + + + + + Create a Term of a given sort. + + 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 [num]* / [num]*. + The sort of the numeral. In the current implementation, the given sort can be an int, real, or bit-vectors of arbitrary size. + A Term with value and sort + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + Create a real from a fraction. + + numerator of rational. + denominator of rational. + A Term with value / and sort Real + + + + + Create a real numeral. + + A string representing the Term value in decimal notation. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create an integer numeral. + + A string representing the Term value in decimal notation. + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create a bit-vector numeral. + + A string representing the value in decimal notation. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a universal Quantifier. + + + Creates a forall formula, where is the weight, + is an array of patterns, is an array + with the sorts of the bound variables, is an array with the + 'names' of the bound variables, and 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 . + Z3 applies the convention that the last element in and + refers to the variable with index 0, the second to last element + of and refers to the variable + with index 1, etc. + + the sorts of the bound variables. + names of the bound variables + the body of the quantifier. + quantifiers are associated with weights indicating the importance of using the quantifier during instantiation. By default, pass the weight 0. + array containing the patterns created using MkPattern. + array containing the anti-patterns created using MkPattern. + optional symbol to track quantifier. + optional symbol to track skolem constants. + + + + Create a universal Quantifier. + + + Creates a universal quantifier using a list of constants that will + form the set of bound variables. + + + + + + Create an existential Quantifier. + + + Creates an existential quantifier using de-Brujin indexed variables. + (). + + + + + Create an existential Quantifier. + + + Creates an existential quantifier using a list of constants that will + form the set of bound variables. + + + + + + Create a Quantifier. + + + + + + Create a Quantifier. + + + + + + Convert a benchmark into an SMT-LIB formatted string. + + Name of the benchmark. The argument is optional. + The benchmark logic. + The status string (sat, unsat, or unknown) + Other attributes, such as source, difficulty or category. + Auxiliary assumptions. + Formula to be checked for consistency in conjunction with assumptions. + A string representation of the benchmark. + + + + Parse the given string using the SMT-LIB parser. + + + The symbol table of the parser can be initialized using the given sorts and declarations. + The symbols in the arrays and + don't need to match the names of the sorts and declarations in the arrays + and . This is a useful feature since we can use arbitrary names to + reference sorts and declarations. + + + + + Parse the given file using the SMT-LIB parser. + + + + + + Parse the given string using the SMT-LIB2 parser. + + + A conjunction of assertions in the scope (up to push/pop) at the end of the string. + + + + Parse the given file using the SMT-LIB2 parser. + + + + + + Creates a new Goal. + + + Note that the Context must have been created with proof generation support if + is set to true here. + + Indicates whether model generation should be enabled. + Indicates whether unsat core generation should be enabled. + Indicates whether proof generation should be enabled. + + + + Creates a new ParameterSet. + + + + + Returns a string containing a description of the tactic with the given name. + + + + + Creates a new Tactic. + + + + + Create a tactic that applies to a Goal and + then to every subgoal produced by . + + + + + Create a tactic that applies to a Goal and + then to every subgoal produced by . + + + Shorthand for AndThen. + + + + + Create a tactic that first applies to a Goal and + if it fails then returns the result of applied to the Goal. + + + + + Create a tactic that applies to a goal for milliseconds. + + + If does not terminate within milliseconds, then it fails. + + + + + Create a tactic that applies to a given goal if the probe + evaluates to true. + + + If evaluates to false, then the new tactic behaves like the skip tactic. + + + + + Create a tactic that applies to a given goal if the probe + evaluates to true and otherwise. + + + + + Create a tactic that keeps applying until the goal is not + modified anymore or the maximum number of iterations is reached. + + + + + Create a tactic that just returns the given goal. + + + + + Create a tactic always fails. + + + + + Create a tactic that fails if the probe evaluates to false. + + + + + Create a tactic that fails if the goal is not triviall satisfiable (i.e., empty) + or trivially unsatisfiable (i.e., contains `false'). + + + + + Create a tactic that applies using the given set of parameters . + + + + + Create a tactic that applies using the given set of parameters . + + Alias for UsingParams + + + + Create a tactic that applies the given tactics in parallel until one of them succeeds (i.e., the first that doesn't fail). + + + + + Create a tactic that applies to a given goal and then + to every subgoal produced by . The subgoals are processed in parallel. + + + + + Interrupt the execution of a Z3 procedure. + + This procedure can be used to interrupt: solvers, simplifiers and tactics. + + + + Returns a string containing a description of the probe with the given name. + + + + + Creates a new Probe. + + + + + Create a probe that always evaluates to . + + + + + Create a probe that evaluates to "true" when the value returned by + is less than the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is greater than the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is less than or equal the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is greater than or equal the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is equal to the value returned by + + + + + Create a probe that evaluates to "true" when the value + and evaluate to "true". + + + + + Create a probe that evaluates to "true" when the value + or evaluate to "true". + + + + + Create a probe that evaluates to "true" when the value + does not evaluate to "true". + + + + + Creates a new (incremental) solver. + + + 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. + + + + + Creates a new (incremental) solver. + + + + + + Creates a new (incremental) solver. + + + + + Creates a solver that is implemented using the given tactic. + + + The solver supports the commands Push and Pop, but it + will always solve each check from scratch. + + + + + Create a Fixedpoint context. + + + + + Create an Optimization context. + + + + + Create the floating-point RoundingMode sort. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode. + + + + + Create a FloatingPoint sort. + + exponent bits in the FloatingPoint sort. + significand bits in the FloatingPoint sort. + + + + Create the half-precision (16-bit) FloatingPoint sort. + + + + + Create the half-precision (16-bit) FloatingPoint sort. + + + + + Create the single-precision (32-bit) FloatingPoint sort. + + + + + Create the single-precision (32-bit) FloatingPoint sort. + + + + + Create the double-precision (64-bit) FloatingPoint sort. + + + + + Create the double-precision (64-bit) FloatingPoint sort. + + + + + Create the quadruple-precision (128-bit) FloatingPoint sort. + + + + + Create the quadruple-precision (128-bit) FloatingPoint sort. + + + + + Create a NaN of sort s. + + FloatingPoint sort. + + + + Create a floating-point infinity of sort s. + + FloatingPoint sort. + indicates whether the result should be negative. + + + + Create a floating-point zero of sort s. + + FloatingPoint sort. + indicates whether the result should be negative. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from an int. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two integers. + + the sign. + the significand. + the exponent. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers. + + the sign. + the significand. + the exponent. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from an int. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two integers. + + the sign. + the exponent. + the significand. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers. + + the sign. + the exponent. + the significand. + FloatingPoint sort. + + + + Floating-point absolute value + + floating-point term + + + + Floating-point negation + + floating-point term + + + + Floating-point addition + + rounding mode term + floating-point term + floating-point term + + + + Floating-point subtraction + + rounding mode term + floating-point term + floating-point term + + + + Floating-point multiplication + + rounding mode term + floating-point term + floating-point term + + + + Floating-point division + + rounding mode term + floating-point term + floating-point term + + + + Floating-point fused multiply-add + + + The result is round((t1 * t2) + t3) + + rounding mode term + floating-point term + floating-point term + floating-point term + + + + Floating-point square root + + rounding mode term + floating-point term + + + + Floating-point remainder + + floating-point term + floating-point term + + + + Floating-point roundToIntegral. Rounds a floating-point number to + the closest integer, again represented as a floating-point number. + + term of RoundingMode sort + floating-point term + + + + Minimum of floating-point numbers. + + floating-point term + floating-point term + + + + Maximum of floating-point numbers. + + floating-point term + floating-point term + + + + Floating-point less than or equal. + + floating-point term + floating-point term + + + + Floating-point less than. + + floating-point term + floating-point term + + + + Floating-point greater than or equal. + + floating-point term + floating-point term + + + + Floating-point greater than. + + floating-point term + floating-point term + + + + Floating-point equality. + + + Note that this is IEEE 754 equality (as opposed to standard =). + + floating-point term + floating-point term + + + + Predicate indicating whether t is a normal floating-point number. + + floating-point term + + + + Predicate indicating whether t is a subnormal floating-point number. + + floating-point term + + + + Predicate indicating whether t is a floating-point number with zero value, i.e., +0 or -0. + + floating-point term + + + + Predicate indicating whether t is a floating-point number representing +oo or -oo. + + floating-point term + + + + Predicate indicating whether t is a NaN. + + floating-point term + + + + Predicate indicating whether t is a negative floating-point number. + + floating-point term + + + + Predicate indicating whether t is a positive floating-point number. + + floating-point term + + + + Create an expression of FloatingPoint sort from three bit-vector expressions. + + + 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. + + bit-vector term (of size 1) representing the sign. + bit-vector term representing the significand. + bit-vector term representing the exponent. + + + + Conversion of a single IEEE 754-2008 bit-vector into a floating-point number. + + + 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. + + bit-vector value (of size m). + FloatingPoint sort (ebits+sbits == m) + + + + Conversion of a FloatingPoint term into another term of different FloatingPoint sort. + + + 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. + + RoundingMode term. + FloatingPoint term. + FloatingPoint sort. + + + + Conversion of a term of real sort into a term of FloatingPoint sort. + + + 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. + + RoundingMode term. + term of Real sort. + FloatingPoint sort. + + + + Conversion of a 2's complement signed bit-vector term into a term of FloatingPoint sort. + + + 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. + + RoundingMode term. + term of bit-vector sort. + FloatingPoint sort. + flag indicating whether t is interpreted as signed or unsigned bit-vector. + + + + Conversion of a floating-point number to another FloatingPoint sort s. + + + 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. + + FloatingPoint sort + floating-point rounding mode term + floating-point term + + + + Conversion of a floating-point term into a bit-vector. + + + 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. + + RoundingMode term. + FloatingPoint term + Size of the resulting bit-vector. + Indicates whether the result is a signed or unsigned bit-vector. + + + + Conversion of a floating-point term into a real-numbered term. + + + 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. + + FloatingPoint term + + + + 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. + + FloatingPoint term. + + + + Conversion of a real-sorted significand and an integer-sorted exponent into a term of FloatingPoint sort. + + + 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. + + RoundingMode term. + Exponent term of Int sort. + Significand term of Real sort. + FloatingPoint sort. + + + + Wraps an AST. + + This function is used for transitions between native and + managed objects. Note that must be a + native object obtained from Z3 (e.g., through ) + and that it must have a correct reference count (see e.g., + . + + The native pointer to wrap. + + + + Unwraps an AST. + + 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., + ). + + The AST to unwrap. + + + + Return a string describing all available parameters to Expr.Simplify. + + + + + Update a mutable configuration parameter. + + + The list of all configuration parameters can be obtained using the Z3 executable: + z3.exe -p + Only a few configuration parameters are mutable once the context is created. + An exception is thrown when trying to modify an immutable parameter. + + + + + Finalizer. + + + + + Disposes of the context. + + + + + Retrieves the Boolean sort of the context. + + + + + Retrieves the Integer sort of the context. + + + + + Retrieves the Real sort of the context. + + + + + Retrieves the String sort of the context. + + + + + Selects the format used for pretty-printing expressions. + + + 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. + + + + + + + + + The number of SMTLIB formulas parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The formulas parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The number of SMTLIB assumptions parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The assumptions parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The number of SMTLIB declarations parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The declarations parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The number of SMTLIB sorts parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The declarations parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The number of supported tactics. + + + + + The names of all supported tactics. + + + + + The number of supported Probes. + + + + + The names of all supported Probes. + + + + + Retrieves parameter descriptions for simplifier. + + + + + AST DRQ + + + + + ASTMap DRQ + + + + + ASTVector DRQ + + + + + ApplyResult DRQ + + + + + FuncEntry DRQ + + + + + FuncInterp DRQ + + + + + Goal DRQ + + + + + Model DRQ + + + + + Params DRQ + + + + + ParamDescrs DRQ + + + + + Probe DRQ + + + + + Solver DRQ + + + + + Statistics DRQ + + + + + Tactic DRQ + + + + + FixedPoint DRQ + + + + + Optimize DRQ + + + + + Datatype expressions + + + + Constructor for DatatypeExpr + + + + Datatype sorts. + + + + + The number of constructors of the datatype sort. + + + + + The constructors. + + + + + The recognizers. + + + + + The constructor accessors. + + + + + The main interaction with Z3 happens via the Context. + + + + Z3_lbool + + + Z3_symbol_kind + + + Z3_parameter_kind + + + Z3_sort_kind + + + Z3_ast_kind + + + Z3_decl_kind + + + Z3_param_kind + + + Z3_ast_print_mode + + + Z3_error_code + + + Z3_goal_prec + + + + Enumeration sorts. + + + + + Retrieves the inx'th constant declaration in the enumeration. + + + + + + + Retrieves the inx'th constant in the enumeration. + + + + + + + Retrieves the inx'th tester/recognizer declaration in the enumeration. + + + + + + + The function declarations of the constants in the enumeration. + + + + + The constants in the enumeration. + + + + + The test predicates (recognizers) for the constants in the enumeration. + + + + + Finite-domain expressions + + + + Constructor for DatatypeExpr + + + + Finite-domain numerals + + + + + Returns a string representation of the numeral. + + + + + Retrieve the 64-bit unsigned integer value. + + + + + Retrieve the int value. + + + + + Retrieve the 64-bit int value. + + + + + Retrieve the int value. + + + + + Retrieve the BigInteger value. + + + + + Finite domain sorts. + + + + + The size of the finite domain sort. + + + + + Object for managing fixedpoints + + + + + Assert a constraint (or multiple) into the fixedpoint solver. + + + + + Alias for Assert. + + + + + Register predicate as recursive relation. + + + + + Add rule into the fixedpoint solver. + + + + + Add table fact to the fixedpoint solver. + + + + + 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. + + + + + 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. + + + + + Creates a backtracking point. + + + + + + Backtrack one backtracking point. + + Note that an exception is thrown if Pop is called without a corresponding Push + + + + + Update named rule into in the fixedpoint solver. + + + + + Retrieve satisfying instance or instances of solver, + or definitions for the recursive predicates that show unsatisfiability. + + + + + Retrieve explanation why fixedpoint engine returned status Unknown. + + + + + Retrieve the number of levels explored for a given predicate. + + + + + Retrieve the cover of a predicate. + + + + + Add property about the predicate. + The property is added at level. + + + + + Retrieve internal string representation of fixedpoint object. + + + + + Instrument the Datalog engine on which table representation to use for recursive predicate. + + + + + Convert benchmark given as set of axioms, rules and queries to a string. + + + + + Parse an SMT-LIB2 file with fixedpoint rules. + Add the rules to the current fixedpoint context. + Return the set of queries in the file. + + + + + Similar to ParseFile. Instead it takes as argument a string. + + + + + A string that describes all available fixedpoint solver parameters. + + + + + Sets the fixedpoint solver parameters. + + + + + Retrieves parameter descriptions for Fixedpoint solver. + + + + + Retrieve set of rules added to fixedpoint context. + + + + + Retrieve set of assertions added to fixedpoint context. + + + + + Fixedpoint statistics. + + + + + FloatingPoint Expressions + + + + Constructor for FPExpr + + + + The number of exponent bits. + + + + + The number of significand bits. + + + + + FloatiungPoint Numerals + + + + + Returns a string representation of the numeral. + + + + + Retrieves the sign of a floating-point literal + + + Remarks: returns true if the numeral is negative + + + + + The significand value of a floating-point numeral as a string + + + The significand s is always 0 < s < 2.0; the resulting string is long + enough to represent the real significand precisely. + + + + + The significand value of a floating-point numeral as a UInt64 + + + This function extracts the significand bits, without the + hidden bit or normalization. Throws an exception if the + significand does not fit into a UInt64. + + + + + Return the exponent value of a floating-point numeral as a string + + + + + Return the exponent value of a floating-point numeral as a signed 64-bit integer + + + + + FloatingPoint RoundingMode Expressions + + + + Constructor for FPRMExpr + + + + Floating-point rounding mode numerals + + + + + Returns a string representation of the numeral. + + + + Constructor for FPRMNum + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + The FloatingPoint RoundingMode sort + + + + + FloatingPoint sort + + + + + The number of exponent bits. + + + + + The number of significand bits. + + + + + Function declarations. + + + + + Comparison operator. + + True if and share the same context and are equal, false otherwise. + + + + Comparison operator. + + True if and do not share the same context or are not equal, false otherwise. + + + + Object comparison. + + + + + A hash code. + + + + + A string representations of the function declaration. + + + + + Create expression that applies function to arguments. + + + + + + + Returns a unique identifier for the function declaration. + + + + + The arity of the function declaration + + + + + The size of the domain of the function declaration + + + + + + The domain of the function declaration + + + + + The range of the function declaration + + + + + The kind of the function declaration. + + + + + The name of the function declaration + + + + + The number of parameters of the function declaration + + + + + The parameters of the function declaration + + + + + Create expression that applies function to arguments. + + + + + + + Function declarations can have Parameters associated with them. + + + + The int value of the parameter. + + + The double value of the parameter. + + + The Symbol value of the parameter. + + + The Sort value of the parameter. + + + The AST value of the parameter. + + + The FunctionDeclaration value of the parameter. + + + The rational string value of the parameter. + + + + The kind of the parameter. + + + + + 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. + + + + + A string representation of the function interpretation. + + + + + The number of entries in the function interpretation. + + + + + The entries in the function interpretation + + + + + The (symbolic) `else' value of the function interpretation. + + + + + The arity of the function interpretation + + + + + An Entry object represents an element in the finite map used to encode + a function interpretation. + + + + + A string representation of the function entry. + + + + + Return the (symbolic) value of this entry. + + + + + The number of arguments of the entry. + + + + + The arguments of the function entry. + + + + + Global functions for Z3. + + + This (static) class contains functions that effect the behaviour of Z3 + globally across contexts, etc. + + + + + Set a global (or module) parameter, which is shared by all Z3 contexts. + + + 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. + + + + + Get a global (or module) parameter. + + + Returns null if the parameter 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. + + + + + Restore the value of all global (and module) parameters. + + + This command will not affect already created objects (such as tactics and solvers) + + + + + + Enable/disable printing of warning messages to the console. + + Note that this function is static and effects the behaviour of + all contexts globally. + + + + Enable tracing messages tagged as `tag' when Z3 is compiled in debug mode. + + + It is a NOOP otherwise. + + trace tag + + + + Disable tracing messages tagged as `tag' when Z3 is compiled in debug mode. + + + It is a NOOP otherwise. + + trace tag + + + + A goal (aka problem). A goal is essentially a set + of formulas, that can be solved and/or transformed using + tactics and solvers. + + + + + Adds the to the given goal. + + + + + Alias for Assert. + + + + + Erases all formulas from the given goal. + + + + + Translates (copies) the Goal to the target Context . + + + + + Simplifies the goal. + + Essentially invokes the `simplify' tactic on the goal. + + + + Goal to string conversion. + + A string representation of the Goal. + + + + Goal to BoolExpr conversion. + + A string representation of the Goal. + + + + The precision of the goal. + + + 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. + + + + + Indicates whether the goal is precise. + + + + + Indicates whether the goal is an under-approximation. + + + + + Indicates whether the goal is an over-approximation. + + + + + Indicates whether the goal is garbage (i.e., the product of over- and under-approximations). + + + + + Indicates whether the goal contains `false'. + + + + + The depth of the goal. + + + This tracks how many transformations were applied to it. + + + + + The number of formulas in the goal. + + + + + The formulas in the goal. + + + + + The number of formulas, subformulas and terms in the goal. + + + + + Indicates whether the goal is empty, and it is precise or the product of an under approximation. + + + + + Indicates whether the goal contains `false', and it is precise or the product of an over approximation. + + + + + The InterpolationContext is suitable for generation of interpolants. + + For more information on interpolation please refer + too the C/C++ API, which is well documented. + + + + Constructor. + + + + + Constructor. + + + + + + Create an expression that marks a formula position for interpolation. + + + + + Computes an interpolant. + + For more information on interpolation please refer + too the function Z3_get_interpolant in the C/C++ API, which is + well documented. + + + + Computes an interpolant. + + For more information on interpolation please refer + too the function Z3_compute_interpolant in the C/C++ API, which is + well documented. + + + + Return a string summarizing cumulative time used for interpolation. + + For more information on interpolation please refer + too the function Z3_interpolation_profile in the C/C++ API, which is + well documented. + + + + Checks the correctness of an interpolant. + + For more information on interpolation please refer + too the function Z3_check_interpolant in the C/C++ API, which is + well documented. + + + + Reads an interpolation problem from a file. + + For more information on interpolation please refer + too the function Z3_read_interpolation_problem in the C/C++ API, which is + well documented. + + + + Writes an interpolation problem to a file. + + For more information on interpolation please refer + too the function Z3_write_interpolation_problem in the C/C++ API, which is + well documented. + + + + Int expressions + + + + Constructor for IntExpr + + + + Integer Numerals + + + + + Returns a string representation of the numeral. + + + + + Retrieve the 64-bit unsigned integer value. + + + + + Retrieve the int value. + + + + + Retrieve the 64-bit int value. + + + + + Retrieve the int value. + + + + + Retrieve the BigInteger value. + + + + + An Integer sort + + + + + Numbered symbols + + + + + Symbols are used to name several term and type constructors. + + + + + Indicates whether the symbol is of Int kind + + + + + Indicates whether the symbol is of string kind. + + + + + A string representation of the symbol. + + + + + Equality overloading. + + + + + Equality overloading. + + + + + Object comparison. + + + + + The Symbols's hash code. + + A hash code + + + + Symbol constructor + + + + + The kind of the symbol (int or string) + + + + + The int value of the symbol. + + Throws an exception if the symbol is not of int kind. + + + + List sorts. + + + + + The declaration of the nil function of this list sort. + + + + + The empty list. + + + + + The declaration of the isNil function of this list sort. + + + + + The declaration of the cons function of this list sort. + + + + + The declaration of the isCons function of this list sort. + + + + + + The declaration of the head function of this list sort. + + + + + The declaration of the tail function of this list sort. + + + + + Interaction logging for Z3. + + + Note that this is a global, static log and if multiple Context + objects are created, it logs the interaction with all of them. + + + + + Open an interaction log file. + + the name of the file to open + True if opening the log file succeeds, false otherwise. + + + + Closes the interaction log. + + + + + Appends the user-provided string to the interaction log. + + + + + Checks whether the interaction log is opened. + + True if the interaction log is open, false otherwise. + + + + A Model contains interpretations (assignments) of constants and functions. + + + + + Retrieves the interpretation (the assignment) of in the model. + + A Constant + An expression if the constant has an interpretation in the model, null otherwise. + + + + Retrieves the interpretation (the assignment) of in the model. + + A function declaration of zero arity + An expression if the function has an interpretation in the model, null otherwise. + + + + Retrieves the interpretation (the assignment) of a non-constant in the model. + + A function declaration of non-zero arity + A FunctionInterpretation if the function has an interpretation in the model, null otherwise. + + + + Evaluates the expression in the current model. + + + This function may fail if contains quantifiers, + is partial (MODEL_PARTIAL enabled), or if is not well-sorted. + In this case a ModelEvaluationFailedException is thrown. + + An expression + + 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. + + The evaluation of in the model. + + + + Alias for Eval. + + + + + The finite set of distinct values that represent the interpretation for sort . + + + An uninterpreted sort + An array of expressions, where each is an element of the universe of + + + + Conversion of models to strings. + + A string representation of the model. + + + + The number of constants that have an interpretation in the model. + + + + + The function declarations of the constants in the model. + + + + + The number of function interpretations in the model. + + + + + The function declarations of the function interpretations in the model. + + + + + All symbols that have an interpretation in the model. + + + + + The number of uninterpreted sorts that the model has an interpretation for. + + + + + The uninterpreted sorts that the model has an interpretation for. + + + 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. + + + + + + + A ModelEvaluationFailedException is thrown when an expression cannot be evaluated by the model. + + + + + The exception base class for error reporting from Z3 + + + + + Constructor. + + + + + Constructor. + + + + + Constructor. + + + + + An exception that is thrown when model evaluation fails. + + + + + Object for managing optimizization context + + + + + Assert a constraint (or multiple) into the optimize solver. + + + + + Assert a constraint (or multiple) into the optimize solver. + + + + + Alias for Assert. + + + + + Alias for Assert. + + + + + Assert a constraint (or multiple) into the optimize solver. + + + + + Assert soft constraint + + + Return an objective which associates with the group of constraints. + + + + + Check satisfiability of asserted constraints. + Produce a model that (when the objectives are bounded and + don't use strict inequalities) meets the objectives. + + + + + + Creates a backtracking point. + + + + + + Backtrack one backtracking point. + + Note that an exception is thrown if Pop is called without a corresponding Push + + + + + 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. + + + + + Declare an arithmetical minimization objective. + Similar to MkMaximize. + + + + + Retrieve a lower bound for the objective handle. + + + + + Retrieve an upper bound for the objective handle. + + + + + Print the context to a string (SMT-LIB parseable benchmark). + + + + + Parse an SMT-LIB2 file with optimization objectives and constraints. + The parsed constraints and objectives are added to the optimization context. + + + + + Similar to FromFile. Instead it takes as argument a string. + + + + + A string that describes all available optimize solver parameters. + + + + + Sets the optimize solver parameters. + + + + + Retrieves parameter descriptions for Optimize solver. + + + + + The model of the last Check. + + + The result is null if Check was not invoked before, + if its results was not SATISFIABLE, or if model production is not enabled. + + + + + Return a string the describes why the last to check returned unknown + + + + + The set of asserted formulas. + + + + + The set of asserted formulas. + + + + + Optimize statistics. + + + + + Handle to objectives returned by objective functions. + + + + + Retrieve a lower bound for the objective handle. + + + + + Retrieve an upper bound for the objective handle. + + + + + Retrieve the value of an objective. + + + + + A ParamDescrs describes a set of parameters. + + + + + validate a set of parameters. + + + + + Retrieve kind of parameter. + + + + + Retrieve documentation of parameter. + + + + + Retrieves a string representation of the ParamDescrs. + + + + + Retrieve all names of parameters. + + + + + The size of the ParamDescrs. + + + + + A Params objects represents a configuration in the form of Symbol/value pairs. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + A string representation of the parameter set. + + + + + 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. + + + + + A string representation of the pattern. + + + + + The number of terms in the pattern. + + + + + The terms in the pattern. + + + + + 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 Context.NumProbes + and Context.ProbeNames. + It may also be obtained using the command (help-tactic) in the SMT 2.0 front-end. + + + + + Execute the probe over the goal. + + A probe always produce a double value. + "Boolean" probes return 0.0 for false, and a value different from 0.0 for true. + + + + Apply the probe to a goal. + + + + + Quantifier expressions. + + + + + Indicates whether the quantifier is universal. + + + + + Indicates whether the quantifier is existential. + + + + + The weight of the quantifier. + + + + + The number of patterns. + + + + + The patterns. + + + + + The number of no-patterns. + + + + + The no-patterns. + + + + + The number of bound variables. + + + + + The symbols for the bound variables. + + + + + The sorts of the bound variables. + + + + + The body of the quantifier. + + + + + Rational Numerals + + + + + Real expressions + + + + Constructor for RealExpr + + + + Returns a string representation in decimal notation. + + The result has at most decimal places. + + + + Returns a string representation of the numeral. + + + + + The numerator of a rational numeral. + + + + + The denominator of a rational numeral. + + + + + Converts the numerator of the rational to a BigInteger + + + + + Converts the denominator of the rational to a BigInteger + + + + + A real sort + + + + + Regular expression expressions + + + + Constructor for ReExpr + + + + Relation sorts. + + + + + The arity of the relation sort. + + + + + The sorts of the columns of the relation sort. + + + + + A regular expression sort + + + + + Sequence expressions + + + + Constructor for SeqExpr + + + + A Sequence sort + + + + + Set sorts. + + + + + Solvers. + + + + + Creates a backtracking point. + + + + + + Backtracks backtracking points. + + Note that an exception is thrown if is not smaller than NumScopes + + + + + Resets the Solver. + + This removes all assertions from the solver. + + + + Assert a constraint (or multiple) into the solver. + + + + + Alias for Assert. + + + + + Assert multiple constraints into the solver, and track them (in the unsat) core + using the Boolean constants in ps. + + + This API is an alternative to 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 + and the Boolean literals + provided using with assumptions. + + + + + Assert a constraint into the solver, and track it (in the unsat) core + using the Boolean constant p. + + + This API is an alternative to 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 + and the Boolean literals + provided using with assumptions. + + + + + Checks whether the assertions in the solver are consistent or not. + + + + + + + + + + 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. + + + + + + + + + + Create a clone of the current solver with respect to ctx. + + + + + A string representation of the solver. + + + + + A string that describes all available solver parameters. + + + + + Sets the solver parameters. + + + + + Retrieves parameter descriptions for solver. + + + + + The current number of backtracking points (scopes). + + + + + + + The number of assertions in the solver. + + + + + The set of asserted formulas. + + + + + The model of the last Check. + + + The result is null if Check was not invoked before, + if its results was not SATISFIABLE, or if model production is not enabled. + + + + + The proof of the last Check. + + + The result is null if Check was not invoked before, + if its results was not UNSATISFIABLE, or if proof production is disabled. + + + + + The unsat core of the last Check. + + + The unsat core is a subset of Assertions + The result is empty if Check was not invoked before, + if its results was not UNSATISFIABLE, or if core production is disabled. + + + + + A brief justification of why the last call to Check returned UNKNOWN. + + + + + Solver statistics. + + + + + Objects of this class track statistical information about solvers. + + + + + A string representation of the statistical data. + + + + + The number of statistical data. + + + + + The data entries. + + + + + The statistical counters. + + + + + The value of a particular statistical counter. + + Returns null if the key is unknown. + + + + Statistical data is organized into pairs of [Key, Entry], where every + Entry is either a DoubleEntry or a UIntEntry + + + + + The key of the entry. + + + + + The string representation of the Entry. + + + + + The uint-value of the entry. + + + + + The double-value of the entry. + + + + + True if the entry is uint-valued. + + + + + True if the entry is double-valued. + + + + + The string representation of the the entry's value. + + + + + Status values. + + + + + Used to signify an unsatisfiable status. + + + + + Used to signify an unknown status. + + + + + Used to signify a satisfiable status. + + + + + Named symbols + + + + + The string value of the symbol. + + Throws an exception if the symbol is not of string kind. + + + + Tactics are the basic building block for creating custom solvers for specific problem domains. + The complete list of tactics may be obtained using Context.NumTactics + and Context.TacticNames. + It may also be obtained using the command (help-tactic) in the SMT 2.0 front-end. + + + + + Execute the tactic over the goal. + + + + + A string containing a description of parameters accepted by the tactic. + + + + + Retrieves parameter descriptions for Tactics. + + + + + Apply the tactic to a goal. + + + + + Creates a solver that is implemented using the given tactic. + + + + + + DecRefQueue + + + + + Tuple sorts. + + + + + The constructor function of the tuple. + + + + + The number of fields in the tuple. + + + + + The field declarations. + + + + + Uninterpreted Sorts + + + + + Version information. + + Note that this class is static. + + + + A string representation of the version information. + + + + + The major version + + + + + The minor version + + + + + The build version + + + + + The revision + + + + + A full version string + + + + 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 Binary files /dev/null and b/rba.tool.core/lib/z3/com.microsoft.z3.jar 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 Binary files /dev/null and b/rba.tool.core/lib/z3/libz3.dll 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 Binary files /dev/null and b/rba.tool.core/lib/z3/libz3.lib 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 Binary files /dev/null and b/rba.tool.core/lib/z3/libz3java.dll 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 Binary files /dev/null and b/rba.tool.core/lib/z3/libz3java.lib 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 Binary files /dev/null and b/rba.tool.core/lib/z3/msvcp110.dll 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 Binary files /dev/null and b/rba.tool.core/lib/z3/msvcr110.dll 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('')) + for k, v in self: + if even: + out.write(u('')) + even = False + else: + out.write(u('')) + even = True + out.write(u('' % (k, v))) + out.write(u('
%s%s
')) + 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 "sat" + elif self.r == Z3_L_FALSE: + return "unsat" + else: + return "unknown" + 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('') + for t in tactics(): + if even: + print('') + even = False + else: + print('') + even = True + print('' % (t, insert_line_breaks(tactic_description(t), 40))) + print('
%s%s
') + 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('') + for p in probes(): + if even: + print('') + even = False + else: + print('') + even = True + print('' % (p, insert_line_breaks(probe_description(p), 40))) + print('
%s%s
') + 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("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 _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("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_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("proved") + elif r == unknown: + print("failed to prove") + print(s.model()) + else: + print("counterexample") + 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 = '…' +# Overwrite some of the operators for HTML +_z3_pre_html_op_to_str = { Z3_OP_EQ : '=', Z3_OP_IFF : '=', Z3_OP_NOT : '¬', + Z3_OP_AND : '∧', Z3_OP_OR : '∨', Z3_OP_IMPLIES : '⇒', + Z3_OP_LT : '<', Z3_OP_GT : '>', Z3_OP_LE : '≤', Z3_OP_GE : '≥', + Z3_OP_MUL : '·', + Z3_OP_SLEQ : '≤', Z3_OP_SLT : '<', Z3_OP_SGEQ : '≥', Z3_OP_SGT : '>', + Z3_OP_ULEQ : '≤u', Z3_OP_ULT : '<u', + Z3_OP_UGEQ : '≥u', Z3_OP_UGT : '>u', + Z3_OP_BMUL : '·', + Z3_OP_BUDIV : '/u', Z3_OP_BUREM : '%u', + Z3_OP_BASHR : '>>', Z3_OP_BSHL : '<<', + Z3_OP_BLSHR : '>>u' + } + +# 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 "ζ%s" % 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 '' + 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 '' + + 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(' →', 1) + + def pp_unknown(self): + return 'unknown' + + 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%s' % (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("≠") + + 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('', 1), arg2_pp, to_format('', 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('ν%s' % 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 = '∀' + else: + header = '∃' + 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('') + for r in m: + _z3_assert(isinstance(r, list) or isinstance(r, tuple), "matrix expected") + print('') + for c in r: + print('' % c) + print('') + print('
%s
') + +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('
')) + 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 +############################################ +""" +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 Binary files /dev/null and b/rba.tool.core/lib/z3/vcomp110.dll 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 Binary files /dev/null and b/rba.tool.core/lib/z3/z3.exe 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/Microsoft.Z3.dll 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 @@ + + + + Microsoft.Z3 + + + + + Algebraic numbers + + + + + Arithmetic expressions (int/real) + + + + + Expressions are terms. + + + + + The abstract syntax tree (AST) class. + + + + + Internal base class for interfacing with native Z3 objects. + Should not be used externally. + + + + + Finalizer. + + + + + Disposes of the underlying native Z3 object. + + + + + Comparison operator. + + An AST + An AST + True if and are from the same context + and represent the same sort; false otherwise. + + + + Comparison operator. + + An AST + An AST + True if and are not from the same context + or represent different sorts; false otherwise. + + + + Object comparison. + + + + + Object Comparison. + + Another AST + Negative if the object should be sorted before , positive if after else zero. + + + + The AST's hash code. + + A hash code + + + + Translates (copies) the AST to the Context . + + A context + A copy of the AST which is associated with + + + + A string representation of the AST. + + + + + A string representation of the AST in s-expression notation. + + + + + A unique identifier for the AST (unique among all ASTs). + + + + + The kind of the AST. + + + + + Indicates whether the AST is an Expr + + + + + Indicates whether the AST is an application + + + + + Indicates whether the AST is a BoundVariable + + + + + Indicates whether the AST is a Quantifier + + + + + Indicates whether the AST is a Sort + + + + + Indicates whether the AST is a FunctionDeclaration + + + + + DecRefQueue interface + + + + + Sets the limit on numbers of objects that are kept back at GC collection. + + + + + + Returns a simplified version of the expression. + + A set of parameters to configure the simplifier + + + + + Update the arguments of the expression using the arguments + The number of new arguments should coincide with the current number of arguments. + + + + + Substitute every occurrence of from[i] in the expression with to[i], for i smaller than num_exprs. + + + The result is the new expression. The arrays from and to must have size num_exprs. + For every i smaller than num_exprs, we must have that + sort of from[i] must be equal to sort of to[i]. + + + + + Substitute every occurrence of from in the expression with to. + + + + + + Substitute the free variables in the expression with the expressions in + + + For every i smaller than num_exprs, the variable with de-Bruijn index i is replaced with term to[i]. + + + + + Translates (copies) the term to the Context . + + A context + A copy of the term which is associated with + + + + Returns a string representation of the expression. + + + + + Constructor for Expr + + + + + The function declaration of the function that is applied in this expression. + + + + + Indicates whether the expression is the true or false expression + or something else (Z3_L_UNDEF). + + + + + The number of arguments of the expression. + + + + + The arguments of the expression. + + + + + Indicates whether the term is a numeral + + + + + Indicates whether the term is well-sorted. + + True if the term is well-sorted, false otherwise. + + + + The Sort of the term. + + + + + Indicates whether the term represents a constant. + + + + + Indicates whether the term is an integer numeral. + + + + + Indicates whether the term is a real numeral. + + + + + Indicates whether the term is an algebraic number + + + + + Indicates whether the term has Boolean sort. + + + + + Indicates whether the term is the constant true. + + + + + Indicates whether the term is the constant false. + + + + + Indicates whether the term is an equality predicate. + + + + + Indicates whether the term is an n-ary distinct predicate (every argument is mutually distinct). + + + + + Indicates whether the term is a ternary if-then-else term + + + + + Indicates whether the term is an n-ary conjunction + + + + + Indicates whether the term is an n-ary disjunction + + + + + Indicates whether the term is an if-and-only-if (Boolean equivalence, binary) + + + + + Indicates whether the term is an exclusive or + + + + + Indicates whether the term is a negation + + + + + Indicates whether the term is an implication + + + + + Indicates whether the term is marked for interpolation. + + + + + + Indicates whether the term is of integer sort. + + + + + Indicates whether the term is of sort real. + + + + + Indicates whether the term is an arithmetic numeral. + + + + + Indicates whether the term is a less-than-or-equal + + + + + Indicates whether the term is a greater-than-or-equal + + + + + Indicates whether the term is a less-than + + + + + Indicates whether the term is a greater-than + + + + + Indicates whether the term is addition (binary) + + + + + Indicates whether the term is subtraction (binary) + + + + + Indicates whether the term is a unary minus + + + + + Indicates whether the term is multiplication (binary) + + + + + Indicates whether the term is division (binary) + + + + + Indicates whether the term is integer division (binary) + + + + + Indicates whether the term is remainder (binary) + + + + + Indicates whether the term is modulus (binary) + + + + + Indicates whether the term is a coercion of integer to real (unary) + + + + + Indicates whether the term is a coercion of real to integer (unary) + + + + + Indicates whether the term is a check that tests whether a real is integral (unary) + + + + + Indicates whether the term is of an array sort. + + + + + Indicates whether the term is an array store. + + It satisfies select(store(a,i,v),j) = if i = j then v else select(a,j). + Array store takes at least 3 arguments. + + + + Indicates whether the term is an array select. + + + + + Indicates whether the term is a constant array. + + For example, select(const(v),i) = v holds for every v and i. The function is unary. + + + + Indicates whether the term is a default array. + + For example default(const(v)) = v. The function is unary. + + + + Indicates whether the term is an array map. + + It satisfies map[f](a1,..,a_n)[i] = f(a1[i],...,a_n[i]) for every i. + + + + Indicates whether the term is an as-array term. + + An as-array term is n array value that behaves as the function graph of the + function passed as parameter. + + + + Indicates whether the term is set union + + + + + Indicates whether the term is set intersection + + + + + Indicates whether the term is set difference + + + + + Indicates whether the term is set complement + + + + + Indicates whether the term is set subset + + + + + Indicates whether the terms is of bit-vector sort. + + + + + Indicates whether the term is a bit-vector numeral + + + + + Indicates whether the term is a one-bit bit-vector with value one + + + + + Indicates whether the term is a one-bit bit-vector with value zero + + + + + Indicates whether the term is a bit-vector unary minus + + + + + Indicates whether the term is a bit-vector addition (binary) + + + + + Indicates whether the term is a bit-vector subtraction (binary) + + + + + Indicates whether the term is a bit-vector multiplication (binary) + + + + + Indicates whether the term is a bit-vector signed division (binary) + + + + + Indicates whether the term is a bit-vector unsigned division (binary) + + + + + Indicates whether the term is a bit-vector signed remainder (binary) + + + + + Indicates whether the term is a bit-vector unsigned remainder (binary) + + + + + Indicates whether the term is a bit-vector signed modulus + + + + + Indicates whether the term is a bit-vector signed division by zero + + + + + Indicates whether the term is a bit-vector unsigned division by zero + + + + + Indicates whether the term is a bit-vector signed remainder by zero + + + + + Indicates whether the term is a bit-vector unsigned remainder by zero + + + + + Indicates whether the term is a bit-vector signed modulus by zero + + + + + Indicates whether the term is an unsigned bit-vector less-than-or-equal + + + + + Indicates whether the term is a signed bit-vector less-than-or-equal + + + + + Indicates whether the term is an unsigned bit-vector greater-than-or-equal + + + + + Indicates whether the term is a signed bit-vector greater-than-or-equal + + + + + Indicates whether the term is an unsigned bit-vector less-than + + + + + Indicates whether the term is a signed bit-vector less-than + + + + + Indicates whether the term is an unsigned bit-vector greater-than + + + + + Indicates whether the term is a signed bit-vector greater-than + + + + + Indicates whether the term is a bit-wise AND + + + + + Indicates whether the term is a bit-wise OR + + + + + Indicates whether the term is a bit-wise NOT + + + + + Indicates whether the term is a bit-wise XOR + + + + + Indicates whether the term is a bit-wise NAND + + + + + Indicates whether the term is a bit-wise NOR + + + + + Indicates whether the term is a bit-wise XNOR + + + + + Indicates whether the term is a bit-vector concatenation (binary) + + + + + Indicates whether the term is a bit-vector sign extension + + + + + Indicates whether the term is a bit-vector zero extension + + + + + Indicates whether the term is a bit-vector extraction + + + + + Indicates whether the term is a bit-vector repetition + + + + + Indicates whether the term is a bit-vector reduce OR + + + + + Indicates whether the term is a bit-vector reduce AND + + + + + Indicates whether the term is a bit-vector comparison + + + + + Indicates whether the term is a bit-vector shift left + + + + + Indicates whether the term is a bit-vector logical shift right + + + + + Indicates whether the term is a bit-vector arithmetic shift left + + + + + Indicates whether the term is a bit-vector rotate left + + + + + Indicates whether the term is a bit-vector rotate right + + + + + Indicates whether the term is a bit-vector rotate left (extended) + + Similar to Z3_OP_ROTATE_LEFT, but it is a binary operator instead of a parametric one. + + + + Indicates whether the term is a bit-vector rotate right (extended) + + Similar to Z3_OP_ROTATE_RIGHT, but it is a binary operator instead of a parametric one. + + + + Indicates whether the term is a coercion from integer to bit-vector + + This function is not supported by the decision procedures. Only the most + rudimentary simplification rules are applied to this function. + + + + Indicates whether the term is a coercion from bit-vector to integer + + This function is not supported by the decision procedures. Only the most + rudimentary simplification rules are applied to this function. + + + + Indicates whether the term is a bit-vector carry + + Compute the carry bit in a full-adder. The meaning is given by the + equivalence (carry l1 l2 l3) <=> (or (and l1 l2) (and l1 l3) (and l2 l3))) + + + + Indicates whether the term is a bit-vector ternary XOR + + The meaning is given by the equivalence (xor3 l1 l2 l3) <=> (xor (xor l1 l2) l3) + + + + Indicates whether the term is a label (used by the Boogie Verification condition generator). + + The label has two parameters, a string and a Boolean polarity. It takes one argument, a formula. + + + + Indicates whether the term is a label literal (used by the Boogie Verification condition generator). + + A label literal has a set of string parameters. It takes no arguments. + + + + Check whether expression is a string constant. + + a Boolean + + + + Retrieve string corresponding to string constant. + + the expression should be a string constant, (IsString should be true). + + + + Check whether expression is a concatentation. + + a Boolean + + + + Check whether expression is a prefix. + + a Boolean + + + + Check whether expression is a suffix. + + a Boolean + + + + Check whether expression is a contains. + + a Boolean + + + + Check whether expression is an extract. + + a Boolean + + + + Check whether expression is a replace. + + a Boolean + + + + Check whether expression is an at. + + a Boolean + + + + Check whether expression is a sequence length. + + a Boolean + + + + Check whether expression is a sequence index. + + a Boolean + + + + Indicates whether the term is a binary equivalence modulo namings. + + This binary predicate is used in proof terms. + It captures equisatisfiability and equivalence modulo renamings. + + + + Indicates whether the term is a Proof for the expression 'true'. + + + + + Indicates whether the term is a proof for a fact asserted by the user. + + + + + Indicates whether the term is a proof for a fact (tagged as goal) asserted by the user. + + + + + Indicates whether the term is proof via modus ponens + + + 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). + + + + Indicates whether the term is a proof for (R t t), where R is a reflexive relation. + + 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'. + + + + Indicates whether the term is proof by symmetricity of a relation + + + 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. + + + + + Indicates whether the term is a proof by transitivity of a relation + + + 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) + + + + + Indicates whether the term is a proof by condensed transitivity of a relation + + + 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. + + + + + Indicates whether the term is a monotonicity proof object. + + + 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. + + + + + Indicates whether the term is a quant-intro proof + + + 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)) + + + + + Indicates whether the term is a distributivity proof object. + + + 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. + + + + + Indicates whether the term is a proof by elimination of AND + + + 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 + + + + + Indicates whether the term is a proof by eliminiation of not-or + + + 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) + + + + + Indicates whether the term is a proof by rewriting + + + 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) + + + + + Indicates whether the term is a proof by rewriting + + + 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) + + + + + Indicates whether the term is a proof for pulling quantifiers out. + + + A proof for (iff (f (forall (x) q(x)) r) (forall (x) (f (q x) r))). This proof object has no antecedents. + + + + + Indicates whether the term is a proof for pulling quantifiers out. + + + 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 + + + + + Indicates whether the term is a proof for pushing quantifiers in. + + + 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 + + + + + Indicates whether the term is a proof for elimination of unused variables. + + + 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. + + + + + Indicates whether the term is a proof for destructive equality resolution + + + 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. + + + + + Indicates whether the term is a proof for quantifier instantiation + + + A proof of (or (not (forall (x) (P x))) (P a)) + + + + + Indicates whether the term is a hypthesis marker. + + Mark a hypothesis in a natural deduction style proof. + + + + Indicates whether the term is a proof by lemma + + + 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. + + + + + Indicates whether the term is a proof by unit resolution + + + 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') + + + + + Indicates whether the term is a proof by iff-true + + + T1: p + [iff-true T1]: (iff p true) + + + + + Indicates whether the term is a proof by iff-false + + + T1: (not p) + [iff-false T1]: (iff p false) + + + + + Indicates whether the term is a proof by commutativity + + + [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. + + + + + Indicates whether the term is a proof for Tseitin-like axioms + + + 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). + + + + + Indicates whether the term is a proof for introduction of a name + + + 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) + + + + + Indicates whether the term is a proof for application of a definition + + + [apply-def T1]: F ~ n + F is 'equivalent' to n, given that T1 is a proof that + n is a name for F. + + + + + Indicates whether the term is a proof iff-oeq + + + T1: (iff p q) + [iff~ T1]: (~ p q) + + + + + Indicates whether the term is a proof for a positive NNF step + + + 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'. + + + + + Indicates whether the term is a proof for a negative NNF step + + + 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'))) + + + + + Indicates whether the term is a proof for (~ P Q) here Q is in negation normal form. + + + 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. + + + + + Indicates whether the term is a proof for (~ P Q) where Q is in conjunctive normal form. + + + 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. + + + + + Indicates whether the term is a proof for a Skolemization step + + + 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. + + + + + Indicates whether the term is a proof by modus ponens for equi-satisfiability. + + + Modus ponens style rule for equi-satisfiability. + T1: p + T2: (~ p q) + [mp~ T1 T2]: q + + + + + Indicates whether the term is a proof for theory lemma + + + 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 (<= t1 t2) (<= t2 t1))) + - gcd-test - Indicates an integer linear arithmetic lemma that uses a gcd test. + + + + + Indicates whether the term is of relation sort. + + + + + Indicates whether the term is an relation store + + + Insert a record into a relation. + The function takes n+1 arguments, where the first argument is the relation and the remaining n elements + correspond to the n columns of the relation. + + + + + Indicates whether the term is an empty relation + + + + + Indicates whether the term is a test for the emptiness of a relation + + + + + Indicates whether the term is a relational join + + + + + Indicates whether the term is the union or convex hull of two relations. + + The function takes two arguments. + + + + Indicates whether the term is the widening of two relations + + The function takes two arguments. + + + + Indicates whether the term is a projection of columns (provided as numbers in the parameters). + + The function takes one argument. + + + + Indicates whether the term is a relation filter + + + 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. + + + + + Indicates whether the term is an intersection of a relation with the negation of another. + + + 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. + + + + + Indicates whether the term is the renaming of a column in a relation + + + The function takes one argument. + The parameters contain the renaming as a cycle. + + + + + Indicates whether the term is the complement of a relation + + + + + Indicates whether the term is a relational select + + + Check if a record is an element of the relation. + The function takes n+1 arguments, where the first argument is a relation, + and the remaining n arguments correspond to a record. + + + + + Indicates whether the term is a relational clone (copy) + + + 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 + to perform destructive updates to the first argument. + + + + + Indicates whether the term is of an array sort. + + + + + Indicates whether the term is a less than predicate over a finite domain. + + + + + Indicates whether the terms is of floating-point sort. + + + + + Indicates whether the terms is of floating-point rounding mode sort. + + + + + Indicates whether the term is a floating-point numeral + + + + + Indicates whether the term is a floating-point rounding mode numeral + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + Indicates whether the term is a floating-point rounding mode numeral + + + + + Indicates whether the term is a floating-point +oo + + + + + Indicates whether the term is a floating-point -oo + + + + + Indicates whether the term is a floating-point NaN + + + + + Indicates whether the term is a floating-point +zero + + + + + Indicates whether the term is a floating-point -zero + + + + + Indicates whether the term is a floating-point addition term + + + + + Indicates whether the term is a floating-point subtraction term + + + + + Indicates whether the term is a floating-point negation term + + + + + Indicates whether the term is a floating-point multiplication term + + + + + Indicates whether the term is a floating-point divison term + + + + + Indicates whether the term is a floating-point remainder term + + + + + Indicates whether the term is a floating-point term absolute value term + + + + + Indicates whether the term is a floating-point minimum term + + + + + Indicates whether the term is a floating-point maximum term + + + + + Indicates whether the term is a floating-point fused multiply-add term + + + + + Indicates whether the term is a floating-point square root term + + + + + Indicates whether the term is a floating-point roundToIntegral term + + + + + Indicates whether the term is a floating-point equality term + + + + + Indicates whether the term is a floating-point less-than term + + + + + Indicates whether the term is a floating-point greater-than term + + + + + Indicates whether the term is a floating-point less-than or equal term + + + + + Indicates whether the term is a floating-point greater-than or erqual term + + + + + Indicates whether the term is a floating-point isNaN predicate term + + + + + Indicates whether the term is a floating-point isInf predicate term + + + + + Indicates whether the term is a floating-point isZero predicate term + + + + + Indicates whether the term is a floating-point isNormal term + + + + + Indicates whether the term is a floating-point isSubnormal predicate term + + + + + Indicates whether the term is a floating-point isNegative predicate term + + + + + Indicates whether the term is a floating-point isPositive predicate term + + + + + Indicates whether the term is a floating-point constructor term + + + + + Indicates whether the term is a floating-point conversion term + + + + + Indicates whether the term is a floating-point conversion from unsigned bit-vector term + + + + + Indicates whether the term is a floating-point conversion to unsigned bit-vector term + + + + + Indicates whether the term is a floating-point conversion to signed bit-vector term + + + + + Indicates whether the term is a floating-point conversion to real term + + + + + Indicates whether the term is a floating-point conversion to IEEE-754 bit-vector term + + + + + The de-Burijn index of a bound variable. + + + 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. + + 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)) + + 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. + + + + Constructor for ArithExpr + + + Operator overloading for arithmetical divsion operator (over reals) + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + + Return a upper bound for a given real algebraic number. + The interval isolating the number is smaller than 1/10^. + + + the precision of the result + A numeral Expr of sort Real + + + + Return a lower bound for the given real algebraic number. + The interval isolating the number is smaller than 1/10^. + + + + A numeral Expr of sort Real + + + + Returns a string representation in decimal notation. + + The result has at most decimal places. + + + + ApplyResult objects represent the result of an application of a + tactic to a goal. It contains the subgoals that were produced. + + + + + Convert a model for the subgoal into a model for the original + goal g, that the ApplyResult was obtained from. + + A model for g + + + + A string representation of the ApplyResult. + + + + + The number of Subgoals. + + + + + Retrieves the subgoals from the ApplyResult. + + + + + An arithmetic sort, i.e., Int or Real. + + + + + The Sort class implements type information for ASTs. + + + + + Comparison operator. + + A Sort + A Sort + True if and are from the same context + and represent the same sort; false otherwise. + + + + Comparison operator. + + A Sort + A Sort + True if and are not from the same context + or represent different sorts; false otherwise. + + + + Equality operator for objects of type Sort. + + + + + + + Hash code generation for Sorts + + A hash code + + + + A string representation of the sort. + + + + + Translates (copies) the sort to the Context . + + A context + A copy of the sort which is associated with + + + + Sort constructor + + + + + Returns a unique identifier for the sort. + + + + + The kind of the sort. + + + + + The name of the sort + + + + + Array expressions + + + + Constructor for ArrayExpr + + + + Array sorts. + + + + + The domain of the array sort. + + + + + The range of the array sort. + + + + + Map from AST to AST + + + + + Checks whether the map contains the key . + + An AST + True if is a key in the map, false otherwise. + + + + Finds the value associated with the key . + + + This function signs an error when is not a key in the map. + + An AST + + + + Stores or replaces a new key/value pair in the map. + + The key AST + The value AST + + + + Erases the key from the map. + + An AST + + + + Removes all keys from the map. + + + + + Retrieves a string representation of the map. + + + + + The size of the map + + + + + The keys stored in the map. + + + + + Vectors of ASTs. + + + + + Resize the vector to . + + The new size of the vector. + + + + Add the AST to the back of the vector. The size + is increased by 1. + + An AST + + + + Translates all ASTs in the vector to . + + A context + A new ASTVector + + + + Retrieves a string representation of the vector. + + + + + Translates an AST vector into an AST[] + + + + + Translates an ASTVector into an Expr[] + + + + + Translates an ASTVector into a BoolExpr[] + + + + + Translates an ASTVector into a BitVecExpr[] + + + + + Translates an ASTVector into a ArithExpr[] + + + + + Translates an ASTVector into a ArrayExpr[] + + + + + Translates an ASTVector into a DatatypeExpr[] + + + + + Translates an ASTVector into a FPExpr[] + + + + + Translates an ASTVector into a FPRMExpr[] + + + + + Translates an ASTVector into a IntExpr[] + + + + + Translates an ASTVector into a RealExpr[] + + + + + The size of the vector + + + + + Retrieves the i-th object in the vector. + + May throw an IndexOutOfBoundsException when is out of range. + Index + An AST + + + + Bit-vector expressions + + + + Constructor for BitVecExpr + + + + The size of the sort of a bit-vector term. + + + + + Bit-vector numerals + + + + + Returns a string representation of the numeral. + + + + + Retrieve the 64-bit unsigned integer value. + + + + + Retrieve the int value. + + + + + Retrieve the 64-bit int value. + + + + + Retrieve the int value. + + + + + Retrieve the BigInteger value. + + + + + Bit-vector sorts. + + + + + The size of the bit-vector sort. + + + + + Boolean expressions + + + + Constructor for BoolExpr + + + Disjunction of Boolean expressions + + + Conjunction of Boolean expressions + + + Xor of Boolean expressions + + + Negation + + + + A Boolean sort. + + + + + Constructors are used for datatype sorts. + + + + + Destructor. + + + + + The number of fields of the constructor. + + + + + The function declaration of the constructor. + + + + + The function declaration of the tester. + + + + + The function declarations of the accessors + + + + + Lists of constructors + + + + + Destructor. + + + + + The main interaction with Z3 happens via the Context. + + + + + Constructor. + + + + + Constructor. + + + 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 + + + + + Creates a new symbol using an integer. + + + Not all integers can be passed to this function. + The legal range of unsigned integers is 0 to 2^30-1. + + + + + Create a symbol using a string. + + + + + Create an array of symbols. + + + + + Create a new Boolean sort. + + + + + Create a new uninterpreted sort. + + + + + Create a new uninterpreted sort. + + + + + Create a new integer sort. + + + + + Create a real sort. + + + + + Create a new bit-vector sort. + + + + + Create a new sequence sort. + + + + + Create a new regular expression sort. + + + + + Create a new array sort. + + + + + Create a new n-ary array sort. + + + + + Create a new tuple sort. + + + + + Create a new enumeration sort. + + + + + Create a new enumeration sort. + + + + + Create a new list sort. + + + + + Create a new list sort. + + + + + Create a new finite domain sort. + The result is a sort + + The name used to identify the sort + The size of the sort + + + + Create a new finite domain sort. + The result is a sort + Elements of the sort are created using , + and the elements range from 0 to size-1. + + The name used to identify the sort + The size of the sort + + + + Create a datatype constructor. + + constructor name + name of recognizer function. + names of the constructor fields. + field sorts, 0 if the field sort refers to a recursive sort. + 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. + + + + Create a datatype constructor. + + + + + + + + + + + Create a new datatype sort. + + + + + Create a new datatype sort. + + + + + Create mutually recursive datatypes. + + names of datatype sorts + list of constructors, one list per sort. + + + + Create mutually recursive data-types. + + + + + + + + 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. + + + + + Creates a new function declaration. + + + + + Creates a new function declaration. + + + + + Creates a new function declaration. + + + + + Creates a new function declaration. + + + + + Creates a fresh function declaration with a name prefixed with . + + + + + + + Creates a new constant function declaration. + + + + + Creates a new constant function declaration. + + + + + Creates a fresh constant function declaration with a name prefixed with . + + + + + + + Creates a new bound variable. + + The de-Bruijn index of the variable + The sort of the variable + + + + Create a quantifier pattern. + + + + + Creates a new Constant of sort and named . + + + + + Creates a new Constant of sort and named . + + + + + Creates a fresh Constant of sort and a + name prefixed with . + + + + + Creates a fresh constant from the FuncDecl . + + A decl of a 0-arity function + + + + Create a Boolean constant. + + + + + Create a Boolean constant. + + + + + Creates an integer constant. + + + + + Creates an integer constant. + + + + + Creates a real constant. + + + + + Creates a real constant. + + + + + Creates a bit-vector constant. + + + + + Creates a bit-vector constant. + + + + + Create a new function application. + + + + + Create a new function application. + + + + + The true Term. + + + + + The false Term. + + + + + Creates a Boolean value. + + + + + Creates the equality = . + + + + + Creates a distinct term. + + + + + Mk an expression representing not(a). + + + + + Create an expression representing an if-then-else: ite(t1, t2, t3). + + An expression with Boolean sort + An expression + An expression with the same sort as + + + + Create an expression representing t1 iff t2. + + + + + Create an expression representing t1 -> t2. + + + + + Create an expression representing t1 xor t2. + + + + + Create an expression representing t[0] and t[1] and .... + + + + + Create an expression representing t[0] and t[1] and .... + + + + + Create an expression representing t[0] or t[1] or .... + + + + + Create an expression representing t[0] or t[1] or .... + + + + + Create an expression representing t[0] + t[1] + .... + + + + + Create an expression representing t[0] + t[1] + .... + + + + + Create an expression representing t[0] * t[1] * .... + + + + + Create an expression representing t[0] * t[1] * .... + + + + + Create an expression representing t[0] - t[1] - .... + + + + + Create an expression representing -t. + + + + + Create an expression representing t1 / t2. + + + + + Create an expression representing t1 mod t2. + + The arguments must have int type. + + + + Create an expression representing t1 rem t2. + + The arguments must have int type. + + + + Create an expression representing t1 ^ t2. + + + + + Create an expression representing t1 < t2 + + + + + Create an expression representing t1 <= t2 + + + + + Create an expression representing t1 > t2 + + + + + Create an expression representing t1 >= t2 + + + + + Coerce an integer to a real. + + + 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 k and + and asserting MakeInt2Real(k) <= t1 < MkInt2Real(k)+1. + The argument must be of integer sort. + + + + + Coerce a real to an integer. + + + The semantics of this function follows the SMT-LIB standard for the function to_int. + The argument must be of real sort. + + + + + Creates an expression that checks whether a real number is an integer. + + + + + Bitwise negation. + + The argument must have a bit-vector sort. + + + + Take conjunction of bits in a vector, return vector of length 1. + + The argument must have a bit-vector sort. + + + + Take disjunction of bits in a vector, return vector of length 1. + + The argument must have a bit-vector sort. + + + + Bitwise conjunction. + + The arguments must have a bit-vector sort. + + + + Bitwise disjunction. + + The arguments must have a bit-vector sort. + + + + Bitwise XOR. + + The arguments must have a bit-vector sort. + + + + Bitwise NAND. + + The arguments must have a bit-vector sort. + + + + Bitwise NOR. + + The arguments must have a bit-vector sort. + + + + Bitwise XNOR. + + The arguments must have a bit-vector sort. + + + + Standard two's complement unary minus. + + The arguments must have a bit-vector sort. + + + + Two's complement addition. + + The arguments must have the same bit-vector sort. + + + + Two's complement subtraction. + + The arguments must have the same bit-vector sort. + + + + Two's complement multiplication. + + The arguments must have the same bit-vector sort. + + + + Unsigned division. + + + It is defined as the floor of t1/t2 if \c t2 is + different from zero. If t2 is zero, then the result + is undefined. + The arguments must have the same bit-vector sort. + + + + + Signed division. + + + It is defined in the following way: + + - The \c floor of t1/t2 if \c t2 is different from zero, and t1*t2 >= 0. + + - The \c ceiling of t1/t2 if \c t2 is different from zero, and t1*t2 < 0. + + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Unsigned remainder. + + + It is defined as t1 - (t1 /u t2) * t2, where /u represents unsigned division. + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Signed remainder. + + + It is defined as t1 - (t1 /s t2) * t2, where /s represents signed division. + The most significant bit (sign) of the result is equal to the most significant bit of \c t1. + + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Two's complement signed remainder (sign follows divisor). + + + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Unsigned less-than + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed less-than + + + The arguments must have the same bit-vector sort. + + + + + Unsigned less-than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed less-than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Unsigned greater than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed greater than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Unsigned greater-than. + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed greater-than. + + + The arguments must have the same bit-vector sort. + + + + + Bit-vector concatenation. + + + The arguments must have a bit-vector sort. + + + The result is a bit-vector of size n1+n2, where n1 (n2) + is the size of t1 (t2). + + + + + Bit-vector extraction. + + + Extract the bits down to from a bitvector of + size m to yield a new bitvector of size n, where + n = high - low + 1. + The argument must have a bit-vector sort. + + + + + Bit-vector sign extension. + + + Sign-extends the given bit-vector to the (signed) equivalent bitvector of + size m+i, where \c m is the size of the given bit-vector. + The argument must have a bit-vector sort. + + + + + Bit-vector zero extension. + + + Extend the given bit-vector with zeros to the (unsigned) equivalent + bitvector of size m+i, where \c m is the size of the + given bit-vector. + The argument must have a bit-vector sort. + + + + + Bit-vector repetition. + + + The argument must have a bit-vector sort. + + + + + Shift left. + + + It is equivalent to multiplication by 2^x where \c x is the value of . + + 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. + + + + + Logical shift right + + + It is equivalent to unsigned division by 2^x where \c x is the value of . + + 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. + + + + + Arithmetic shift right + + + 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. + + + + + Rotate Left. + + + Rotate bits of \c t to the left \c i times. + The argument must have a bit-vector sort. + + + + + Rotate Right. + + + Rotate bits of \c t to the right \c i times. + The argument must have a bit-vector sort. + + + + + Rotate Left. + + + Rotate bits of to the left times. + The arguments must have the same bit-vector sort. + + + + + Rotate Right. + + + Rotate bits of to the right times. + The arguments must have the same bit-vector sort. + + + + + Create an bit bit-vector from the integer argument . + + + 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. + + + + + Create an integer from the bit-vector argument . + + + 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 [0..2^N-1], where + N are the number of bits in . + 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. + + + + + Create a predicate that checks that the bit-wise addition does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise addition does not underflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise subtraction does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise subtraction does not underflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise signed division does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise negation does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise multiplication does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise multiplication does not underflow. + + + The arguments must be of bit-vector sort. + + + + + Create an array constant. + + + + + Create an array constant. + + + + + Array read. + + + The argument a is the array and i is the index + of the array that gets read. + + The node a must have an array sort [domain -> range], + and i must have the sort domain. + The sort of the result is range. + + + + + + + Array read. + + + The argument a is the array and args are the indices + of the array that gets read. + + The node a must have an array sort [domain1,..,domaink -> range], + and args must have the sort domain1,..,domaink. + The sort of the result is range. + + + + + + + Array update. + + + The node a must have an array sort [domain -> range], + i must have sort domain, + v must have sort range. The sort of the result is [domain -> range]. + 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 a + (with respect to select) + on all indices except for i, where it maps to v + (and the select of a with + respect to i may be a different value). + + + + + + + + Array update. + + + The node a must have an array sort [domain1,..,domaink -> range], + args must have sort domain1,..,domaink, + v must have sort range. The sort of the result is [domain -> range]. + 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 a + (with respect to select) + on all indices except for args, where it maps to v + (and the select of a with + respect to args may be a different value). + + + + + + + + Create a constant array. + + + The resulting term is an array, such that a selecton an arbitrary index + produces the value v. + + + + + + + Maps f on the argument arrays. + + + Eeach element of args must be of an array sort [domain_i -> range_i]. + The function declaration f must have type range_1 .. range_n -> range. + v must have sort range. The sort of the result is [domain_i -> range]. + + + + + + + + Access the array default value. + + + Produces the default range value, for arrays that can be represented as + finite maps with a default range value. + + + + + Create Extentionality index. Two arrays are equal if and only if they are equal on the index returned by MkArrayExt. + + + + + Create a set type. + + + + + Create an empty set. + + + + + Create the full set. + + + + + Add an element to the set. + + + + + Remove an element from a set. + + + + + Take the union of a list of sets. + + + + + Take the intersection of a list of sets. + + + + + Take the difference between two sets. + + + + + Take the complement of a set. + + + + + Check for set membership. + + + + + Check for subsetness of sets. + + + + + Create the empty sequence. + + + + + Create the singleton sequence. + + + + + Create a string constant. + + + + + Convert an integer expression to a string. + + + + + Convert an integer expression to a string. + + + + + Concatentate sequences. + + + + + Retrieve the length of a given sequence. + + + + + Check for sequence prefix. + + + + + Check for sequence suffix. + + + + + Check for sequence containment of s2 in s1. + + + + + Retrieve sequence of length one at index. + + + + + Extract subsequence. + + + + + Extract index of sub-string starting at offset. + + + + + Replace the first occurrence of src by dst in s. + + + + + Convert a regular expression that accepts sequence s. + + + + + Check for regular expression membership. + + + + + Take the Kleene star of a regular expression. + + + + + Take the bounded Kleene star of a regular expression. + + + + + Take the Kleene plus of a regular expression. + + + + + Create the optional regular expression. + + + + + Create the complement regular expression. + + + + + Create the concatenation of regular languages. + + + + + Create the union of regular languages. + + + + + Create the intersection of regular languages. + + + + + Create the empty regular expression. + + + + + Create the full regular expression. + + + + + Create a range expression. + + + + + Create an at-most-k constraint. + + + + + Create an at-least-k constraint. + + + + + Create a pseudo-Boolean less-or-equal constraint. + + + + + Create a pseudo-Boolean greater-or-equal constraint. + + + + + Create a pseudo-Boolean equal constraint. + + + + + Create a Term of a given sort. + + 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 [num]* / [num]*. + The sort of the numeral. In the current implementation, the given sort can be an int, real, or bit-vectors of arbitrary size. + A Term with value and sort + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + Create a real from a fraction. + + numerator of rational. + denominator of rational. + A Term with value / and sort Real + + + + + Create a real numeral. + + A string representing the Term value in decimal notation. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create an integer numeral. + + A string representing the Term value in decimal notation. + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create a bit-vector numeral. + + A string representing the value in decimal notation. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a bit-vector numeral. + + An array of bits representing the bit-vector. Least signficant bit is at position 0. + + + + Create a universal Quantifier. + + + Creates a forall formula, where is the weight, + is an array of patterns, is an array + with the sorts of the bound variables, is an array with the + 'names' of the bound variables, and 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 . + Z3 applies the convention that the last element in and + refers to the variable with index 0, the second to last element + of and refers to the variable + with index 1, etc. + + the sorts of the bound variables. + names of the bound variables + the body of the quantifier. + quantifiers are associated with weights indicating the importance of using the quantifier during instantiation. By default, pass the weight 0. + array containing the patterns created using MkPattern. + array containing the anti-patterns created using MkPattern. + optional symbol to track quantifier. + optional symbol to track skolem constants. + + + + Create a universal Quantifier. + + + Creates a universal quantifier using a list of constants that will + form the set of bound variables. + + + + + + Create an existential Quantifier. + + + Creates an existential quantifier using de-Brujin indexed variables. + (). + + + + + Create an existential Quantifier. + + + Creates an existential quantifier using a list of constants that will + form the set of bound variables. + + + + + + Create a Quantifier. + + + + + + Create a Quantifier. + + + + + + Parse the given string using the SMT-LIB2 parser. + + A conjunction of assertions in the scope (up to push/pop) at the end of the string. + + + + Parse the given file using the SMT-LIB2 parser. + + + + + + Creates a new Goal. + + + Note that the Context must have been created with proof generation support if + is set to true here. + + Indicates whether model generation should be enabled. + Indicates whether unsat core generation should be enabled. + Indicates whether proof generation should be enabled. + + + + Creates a new ParameterSet. + + + + + Returns a string containing a description of the tactic with the given name. + + + + + Creates a new Tactic. + + + + + Create a tactic that applies to a Goal and + then to every subgoal produced by . + + + + + Create a tactic that applies to a Goal and + then to every subgoal produced by . + + + Shorthand for AndThen. + + + + + Create a tactic that first applies to a Goal and + if it fails then returns the result of applied to the Goal. + + + + + Create a tactic that applies to a goal for milliseconds. + + + If does not terminate within milliseconds, then it fails. + + + + + Create a tactic that applies to a given goal if the probe + evaluates to true. + + + If evaluates to false, then the new tactic behaves like the skip tactic. + + + + + Create a tactic that applies to a given goal if the probe + evaluates to true and otherwise. + + + + + Create a tactic that keeps applying until the goal is not + modified anymore or the maximum number of iterations is reached. + + + + + Create a tactic that just returns the given goal. + + + + + Create a tactic always fails. + + + + + Create a tactic that fails if the probe evaluates to false. + + + + + Create a tactic that fails if the goal is not triviall satisfiable (i.e., empty) + or trivially unsatisfiable (i.e., contains `false'). + + + + + Create a tactic that applies using the given set of parameters . + + + + + Create a tactic that applies using the given set of parameters . + + Alias for UsingParams + + + + Create a tactic that applies the given tactics in parallel until one of them succeeds (i.e., the first that doesn't fail). + + + + + Create a tactic that applies to a given goal and then + to every subgoal produced by . The subgoals are processed in parallel. + + + + + Interrupt the execution of a Z3 procedure. + + This procedure can be used to interrupt: solvers, simplifiers and tactics. + + + + Returns a string containing a description of the probe with the given name. + + + + + Creates a new Probe. + + + + + Create a probe that always evaluates to . + + + + + Create a probe that evaluates to "true" when the value returned by + is less than the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is greater than the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is less than or equal the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is greater than or equal the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is equal to the value returned by + + + + + Create a probe that evaluates to "true" when the value + and evaluate to "true". + + + + + Create a probe that evaluates to "true" when the value + or evaluate to "true". + + + + + Create a probe that evaluates to "true" when the value + does not evaluate to "true". + + + + + Creates a new (incremental) solver. + + + 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. + + + + + Creates a new (incremental) solver. + + + + + + Creates a new (incremental) solver. + + + + + Creates a solver that is implemented using the given tactic. + + + The solver supports the commands Push and Pop, but it + will always solve each check from scratch. + + + + + Create a Fixedpoint context. + + + + + Create an Optimization context. + + + + + Create the floating-point RoundingMode sort. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode. + + + + + Create a FloatingPoint sort. + + exponent bits in the FloatingPoint sort. + significand bits in the FloatingPoint sort. + + + + Create the half-precision (16-bit) FloatingPoint sort. + + + + + Create the half-precision (16-bit) FloatingPoint sort. + + + + + Create the single-precision (32-bit) FloatingPoint sort. + + + + + Create the single-precision (32-bit) FloatingPoint sort. + + + + + Create the double-precision (64-bit) FloatingPoint sort. + + + + + Create the double-precision (64-bit) FloatingPoint sort. + + + + + Create the quadruple-precision (128-bit) FloatingPoint sort. + + + + + Create the quadruple-precision (128-bit) FloatingPoint sort. + + + + + Create a NaN of sort s. + + FloatingPoint sort. + + + + Create a floating-point infinity of sort s. + + FloatingPoint sort. + indicates whether the result should be negative. + + + + Create a floating-point zero of sort s. + + FloatingPoint sort. + indicates whether the result should be negative. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from an int. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two integers. + + the sign. + the significand. + the exponent. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers. + + the sign. + the significand. + the exponent. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from an int. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two integers. + + the sign. + the exponent. + the significand. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers. + + the sign. + the exponent. + the significand. + FloatingPoint sort. + + + + Floating-point absolute value + + floating-point term + + + + Floating-point negation + + floating-point term + + + + Floating-point addition + + rounding mode term + floating-point term + floating-point term + + + + Floating-point subtraction + + rounding mode term + floating-point term + floating-point term + + + + Floating-point multiplication + + rounding mode term + floating-point term + floating-point term + + + + Floating-point division + + rounding mode term + floating-point term + floating-point term + + + + Floating-point fused multiply-add + + + The result is round((t1 * t2) + t3) + + rounding mode term + floating-point term + floating-point term + floating-point term + + + + Floating-point square root + + rounding mode term + floating-point term + + + + Floating-point remainder + + floating-point term + floating-point term + + + + Floating-point roundToIntegral. Rounds a floating-point number to + the closest integer, again represented as a floating-point number. + + term of RoundingMode sort + floating-point term + + + + Minimum of floating-point numbers. + + floating-point term + floating-point term + + + + Maximum of floating-point numbers. + + floating-point term + floating-point term + + + + Floating-point less than or equal. + + floating-point term + floating-point term + + + + Floating-point less than. + + floating-point term + floating-point term + + + + Floating-point greater than or equal. + + floating-point term + floating-point term + + + + Floating-point greater than. + + floating-point term + floating-point term + + + + Floating-point equality. + + + Note that this is IEEE 754 equality (as opposed to standard =). + + floating-point term + floating-point term + + + + Predicate indicating whether t is a normal floating-point number. + + floating-point term + + + + Predicate indicating whether t is a subnormal floating-point number. + + floating-point term + + + + Predicate indicating whether t is a floating-point number with zero value, i.e., +0 or -0. + + floating-point term + + + + Predicate indicating whether t is a floating-point number representing +oo or -oo. + + floating-point term + + + + Predicate indicating whether t is a NaN. + + floating-point term + + + + Predicate indicating whether t is a negative floating-point number. + + floating-point term + + + + Predicate indicating whether t is a positive floating-point number. + + floating-point term + + + + Create an expression of FloatingPoint sort from three bit-vector expressions. + + + 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. + + bit-vector term (of size 1) representing the sign. + bit-vector term representing the significand. + bit-vector term representing the exponent. + + + + Conversion of a single IEEE 754-2008 bit-vector into a floating-point number. + + + 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. + + bit-vector value (of size m). + FloatingPoint sort (ebits+sbits == m) + + + + Conversion of a FloatingPoint term into another term of different FloatingPoint sort. + + + 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. + + RoundingMode term. + FloatingPoint term. + FloatingPoint sort. + + + + Conversion of a term of real sort into a term of FloatingPoint sort. + + + 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. + + RoundingMode term. + term of Real sort. + FloatingPoint sort. + + + + Conversion of a 2's complement signed bit-vector term into a term of FloatingPoint sort. + + + 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. + + RoundingMode term. + term of bit-vector sort. + FloatingPoint sort. + flag indicating whether t is interpreted as signed or unsigned bit-vector. + + + + Conversion of a floating-point number to another FloatingPoint sort s. + + + 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. + + FloatingPoint sort + floating-point rounding mode term + floating-point term + + + + Conversion of a floating-point term into a bit-vector. + + + 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. + + RoundingMode term. + FloatingPoint term + Size of the resulting bit-vector. + Indicates whether the result is a signed or unsigned bit-vector. + + + + Conversion of a floating-point term into a real-numbered term. + + + 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. + + FloatingPoint term + + + + 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. + + FloatingPoint term. + + + + Conversion of a real-sorted significand and an integer-sorted exponent into a term of FloatingPoint sort. + + + 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. + + RoundingMode term. + Exponent term of Int sort. + Significand term of Real sort. + FloatingPoint sort. + + + + Wraps an AST. + + This function is used for transitions between native and + managed objects. Note that must be a + native object obtained from Z3 (e.g., through ) + and that it must have a correct reference count (see e.g., + . + + The native pointer to wrap. + + + + Unwraps an AST. + + 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., + ). + + The AST to unwrap. + + + + Return a string describing all available parameters to Expr.Simplify. + + + + + Update a mutable configuration parameter. + + + The list of all configuration parameters can be obtained using the Z3 executable: + z3.exe -p + Only a few configuration parameters are mutable once the context is created. + An exception is thrown when trying to modify an immutable parameter. + + + + + Finalizer. + + + + + Disposes of the context. + + + + + Retrieves the Boolean sort of the context. + + + + + Retrieves the Integer sort of the context. + + + + + Retrieves the Real sort of the context. + + + + + Retrieves the String sort of the context. + + + + + Selects the format used for pretty-printing expressions. + + + 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. + + + + + + + + + The number of supported tactics. + + + + + The names of all supported tactics. + + + + + The number of supported Probes. + + + + + The names of all supported Probes. + + + + + Retrieves parameter descriptions for simplifier. + + + + + AST DRQ + + + + + ASTMap DRQ + + + + + ASTVector DRQ + + + + + ApplyResult DRQ + + + + + FuncEntry DRQ + + + + + FuncInterp DRQ + + + + + Goal DRQ + + + + + Model DRQ + + + + + Params DRQ + + + + + ParamDescrs DRQ + + + + + Probe DRQ + + + + + Solver DRQ + + + + + Statistics DRQ + + + + + Tactic DRQ + + + + + FixedPoint DRQ + + + + + Optimize DRQ + + + + + Datatype expressions + + + + Constructor for DatatypeExpr + + + + Datatype sorts. + + + + + The number of constructors of the datatype sort. + + + + + The constructors. + + + + + The recognizers. + + + + + The constructor accessors. + + + + + The main interaction with Z3 happens via the Context. + + + + Z3_lbool + + + Z3_symbol_kind + + + Z3_parameter_kind + + + Z3_sort_kind + + + Z3_ast_kind + + + Z3_decl_kind + + + Z3_param_kind + + + Z3_ast_print_mode + + + Z3_error_code + + + Z3_goal_prec + + + + Enumeration sorts. + + + + + Retrieves the inx'th constant declaration in the enumeration. + + + + + + + Retrieves the inx'th constant in the enumeration. + + + + + + + Retrieves the inx'th tester/recognizer declaration in the enumeration. + + + + + + + The function declarations of the constants in the enumeration. + + + + + The constants in the enumeration. + + + + + The test predicates (recognizers) for the constants in the enumeration. + + + + + Finite-domain expressions + + + + Constructor for DatatypeExpr + + + + Finite-domain numerals + + + + + Returns a string representation of the numeral. + + + + + Retrieve the 64-bit unsigned integer value. + + + + + Retrieve the int value. + + + + + Retrieve the 64-bit int value. + + + + + Retrieve the int value. + + + + + Retrieve the BigInteger value. + + + + + Finite domain sorts. + + + + + The size of the finite domain sort. + + + + + Object for managing fixedpoints + + + + + Assert a constraint (or multiple) into the fixedpoint solver. + + + + + Alias for Assert. + + + + + Register predicate as recursive relation. + + + + + Add rule into the fixedpoint solver. + + + + + Add table fact to the fixedpoint solver. + + + + + 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. + + + + + 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. + + + + + Creates a backtracking point. + + + + + + Backtrack one backtracking point. + + Note that an exception is thrown if Pop is called without a corresponding Push + + + + + Update named rule into in the fixedpoint solver. + + + + + Retrieve satisfying instance or instances of solver, + or definitions for the recursive predicates that show unsatisfiability. + + + + + Retrieve explanation why fixedpoint engine returned status Unknown. + + + + + Retrieve the number of levels explored for a given predicate. + + + + + Retrieve the cover of a predicate. + + + + + Add property about the predicate. + The property is added at level. + + + + + Retrieve internal string representation of fixedpoint object. + + + + + Instrument the Datalog engine on which table representation to use for recursive predicate. + + + + + Convert benchmark given as set of axioms, rules and queries to a string. + + + + + Parse an SMT-LIB2 file with fixedpoint rules. + Add the rules to the current fixedpoint context. + Return the set of queries in the file. + + + + + Similar to ParseFile. Instead it takes as argument a string. + + + + + A string that describes all available fixedpoint solver parameters. + + + + + Sets the fixedpoint solver parameters. + + + + + Retrieves parameter descriptions for Fixedpoint solver. + + + + + Retrieve set of rules added to fixedpoint context. + + + + + Retrieve set of assertions added to fixedpoint context. + + + + + Fixedpoint statistics. + + + + + FloatingPoint Expressions + + + + Constructor for FPExpr + + + + The number of exponent bits. + + + + + The number of significand bits. + + + + + FloatiungPoint Numerals + + + + + Return the (biased) exponent value of a floating-point numeral as a string + + + + + Return the exponent value of a floating-point numeral as a signed 64-bit integer + + + + + The exponent of a floating-point numeral as a bit-vector expression + + + +oo, -oo and NaN's do not have a bit-vector exponent, so they are invalid arguments. + + + + + Returns a string representation of the numeral. + + + + + The sign of a floating-point numeral as a bit-vector expression + + + NaN's do not have a bit-vector sign, so they are invalid arguments. + + + + + Retrieves the sign of a floating-point literal + + + Remarks: returns true if the numeral is negative + + + + + The significand value of a floating-point numeral as a string + + + The significand s is always 0 < s < 2.0; the resulting string is long + enough to represent the real significand precisely. + + + + + The significand value of a floating-point numeral as a UInt64 + + + This function extracts the significand bits, without the + hidden bit or normalization. Throws an exception if the + significand does not fit into a UInt64. + + + + + The significand of a floating-point numeral as a bit-vector expression + + + +oo, -oo and NaN's do not have a bit-vector significand, so they are invalid arguments. + + + + + Indicates whether the numeral is a NaN. + + + + + Indicates whether the numeral is a +oo or -oo. + + + + + Indicates whether the numeral is +zero or -zero. + + + + + Indicates whether the numeral is normal. + + + + + Indicates whether the numeral is subnormal. + + + + + Indicates whether the numeral is positive. + + + + + Indicates whether the numeral is negative. + + + + + FloatingPoint RoundingMode Expressions + + + + Constructor for FPRMExpr + + + + Floating-point rounding mode numerals + + + + + Returns a string representation of the numeral. + + + + Constructor for FPRMNum + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + The FloatingPoint RoundingMode sort + + + + + FloatingPoint sort + + + + + The number of exponent bits. + + + + + The number of significand bits. + + + + + Function declarations. + + + + + Comparison operator. + + True if and share the same context and are equal, false otherwise. + + + + Comparison operator. + + True if and do not share the same context or are not equal, false otherwise. + + + + Object comparison. + + + + + A hash code. + + + + + A string representations of the function declaration. + + + + + Translates (copies) the function declaration to the Context . + + A context + A copy of the function declaration which is associated with + + + + Create expression that applies function to arguments. + + + + + + + Returns a unique identifier for the function declaration. + + + + + The arity of the function declaration + + + + + The size of the domain of the function declaration + + + + + + The domain of the function declaration + + + + + The range of the function declaration + + + + + The kind of the function declaration. + + + + + The name of the function declaration + + + + + The number of parameters of the function declaration + + + + + The parameters of the function declaration + + + + + Create expression that applies function to arguments. + + + + + + + Function declarations can have Parameters associated with them. + + + + The int value of the parameter. + + + The double value of the parameter. + + + The Symbol value of the parameter. + + + The Sort value of the parameter. + + + The AST value of the parameter. + + + The FunctionDeclaration value of the parameter. + + + The rational string value of the parameter. + + + + The kind of the parameter. + + + + + 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. + + + + + A string representation of the function interpretation. + + + + + The number of entries in the function interpretation. + + + + + The entries in the function interpretation + + + + + The (symbolic) `else' value of the function interpretation. + + + + + The arity of the function interpretation + + + + + An Entry object represents an element in the finite map used to encode + a function interpretation. + + + + + A string representation of the function entry. + + + + + Return the (symbolic) value of this entry. + + + + + The number of arguments of the entry. + + + + + The arguments of the function entry. + + + + + Global functions for Z3. + + + This (static) class contains functions that effect the behaviour of Z3 + globally across contexts, etc. + + + + + Set a global (or module) parameter, which is shared by all Z3 contexts. + + + 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. + + + + + Get a global (or module) parameter. + + + Returns null if the parameter 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. + + + + + Restore the value of all global (and module) parameters. + + + This command will not affect already created objects (such as tactics and solvers) + + + + + + Enable/disable printing of warning messages to the console. + + Note that this function is static and effects the behaviour of + all contexts globally. + + + + Enable tracing messages tagged as `tag' when Z3 is compiled in debug mode. + + + It is a NOOP otherwise. + + trace tag + + + + Disable tracing messages tagged as `tag' when Z3 is compiled in debug mode. + + + It is a NOOP otherwise. + + trace tag + + + + A goal (aka problem). A goal is essentially a set + of formulas, that can be solved and/or transformed using + tactics and solvers. + + + + + Adds the to the given goal. + + + + + Alias for Assert. + + + + + Erases all formulas from the given goal. + + + + + Translates (copies) the Goal to the target Context . + + + + + Simplifies the goal. + + Essentially invokes the `simplify' tactic on the goal. + + + + Goal to string conversion. + + A string representation of the Goal. + + + + Goal to BoolExpr conversion. + + A string representation of the Goal. + + + + The precision of the goal. + + + 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. + + + + + Indicates whether the goal is precise. + + + + + Indicates whether the goal is an under-approximation. + + + + + Indicates whether the goal is an over-approximation. + + + + + Indicates whether the goal is garbage (i.e., the product of over- and under-approximations). + + + + + Indicates whether the goal contains `false'. + + + + + The depth of the goal. + + + This tracks how many transformations were applied to it. + + + + + The number of formulas in the goal. + + + + + The formulas in the goal. + + + + + The number of formulas, subformulas and terms in the goal. + + + + + Indicates whether the goal is empty, and it is precise or the product of an under approximation. + + + + + Indicates whether the goal contains `false', and it is precise or the product of an over approximation. + + + + + The InterpolationContext is suitable for generation of interpolants. + + For more information on interpolation please refer + too the C/C++ API, which is well documented. + + + + Constructor. + + + + + Constructor. + + + + + + Create an expression that marks a formula position for interpolation. + + + + + Computes an interpolant. + + For more information on interpolation please refer + too the function Z3_get_interpolant in the C/C++ API, which is + well documented. + + + + Computes an interpolant. + + For more information on interpolation please refer + too the function Z3_compute_interpolant in the C/C++ API, which is + well documented. + + + + Return a string summarizing cumulative time used for interpolation. + + For more information on interpolation please refer + too the function Z3_interpolation_profile in the C/C++ API, which is + well documented. + + + + Checks the correctness of an interpolant. + + For more information on interpolation please refer + too the function Z3_check_interpolant in the C/C++ API, which is + well documented. + + + + Reads an interpolation problem from a file. + + For more information on interpolation please refer + too the function Z3_read_interpolation_problem in the C/C++ API, which is + well documented. + + + + Writes an interpolation problem to a file. + + For more information on interpolation please refer + too the function Z3_write_interpolation_problem in the C/C++ API, which is + well documented. + + + + Int expressions + + + + Constructor for IntExpr + + + + Integer Numerals + + + + + Returns a string representation of the numeral. + + + + + Retrieve the 64-bit unsigned integer value. + + + + + Retrieve the int value. + + + + + Retrieve the 64-bit int value. + + + + + Retrieve the int value. + + + + + Retrieve the BigInteger value. + + + + + An Integer sort + + + + + Numbered symbols + + + + + Symbols are used to name several term and type constructors. + + + + + Indicates whether the symbol is of Int kind + + + + + Indicates whether the symbol is of string kind. + + + + + A string representation of the symbol. + + + + + Equality overloading. + + + + + Equality overloading. + + + + + Object comparison. + + + + + The Symbols's hash code. + + A hash code + + + + Symbol constructor + + + + + The kind of the symbol (int or string) + + + + + The int value of the symbol. + + Throws an exception if the symbol is not of int kind. + + + + List sorts. + + + + + The declaration of the nil function of this list sort. + + + + + The empty list. + + + + + The declaration of the isNil function of this list sort. + + + + + The declaration of the cons function of this list sort. + + + + + The declaration of the isCons function of this list sort. + + + + + + The declaration of the head function of this list sort. + + + + + The declaration of the tail function of this list sort. + + + + + Interaction logging for Z3. + + + Note that this is a global, static log and if multiple Context + objects are created, it logs the interaction with all of them. + + + + + Open an interaction log file. + + the name of the file to open + True if opening the log file succeeds, false otherwise. + + + + Closes the interaction log. + + + + + Appends the user-provided string to the interaction log. + + + + + Checks whether the interaction log is opened. + + True if the interaction log is open, false otherwise. + + + + A Model contains interpretations (assignments) of constants and functions. + + + + + Retrieves the interpretation (the assignment) of in the model. + + A Constant + An expression if the constant has an interpretation in the model, null otherwise. + + + + Retrieves the interpretation (the assignment) of in the model. + + A function declaration of zero arity + An expression if the function has an interpretation in the model, null otherwise. + + + + Retrieves the interpretation (the assignment) of a non-constant in the model. + + A function declaration of non-zero arity + A FunctionInterpretation if the function has an interpretation in the model, null otherwise. + + + + Evaluates the expression in the current model. + + + This function may fail if contains quantifiers, + is partial (MODEL_PARTIAL enabled), or if is not well-sorted. + In this case a ModelEvaluationFailedException is thrown. + + An expression + + 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. + + The evaluation of in the model. + + + + Alias for Eval. + + + + + The finite set of distinct values that represent the interpretation for sort . + + + An uninterpreted sort + An array of expressions, where each is an element of the universe of + + + + Conversion of models to strings. + + A string representation of the model. + + + + The number of constants that have an interpretation in the model. + + + + + The function declarations of the constants in the model. + + + + + Enumerate constants in model. + + + + + The number of function interpretations in the model. + + + + + The function declarations of the function interpretations in the model. + + + + + All symbols that have an interpretation in the model. + + + + + The number of uninterpreted sorts that the model has an interpretation for. + + + + + The uninterpreted sorts that the model has an interpretation for. + + + 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. + + + + + + + A ModelEvaluationFailedException is thrown when an expression cannot be evaluated by the model. + + + + + The exception base class for error reporting from Z3 + + + + + Constructor. + + + + + Constructor. + + + + + Constructor. + + + + + An exception that is thrown when model evaluation fails. + + + + + Object for managing optimizization context + + + + + Assert a constraint (or multiple) into the optimize solver. + + + + + Assert a constraint (or multiple) into the optimize solver. + + + + + Alias for Assert. + + + + + Alias for Assert. + + + + + Assert a constraint (or multiple) into the optimize solver. + + + + + Assert soft constraint + + + Return an objective which associates with the group of constraints. + + + + + Check satisfiability of asserted constraints. + Produce a model that (when the objectives are bounded and + don't use strict inequalities) meets the objectives. + + + + + + Creates a backtracking point. + + + + + + Backtrack one backtracking point. + + Note that an exception is thrown if Pop is called without a corresponding Push + + + + + 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. + + + + + Declare an arithmetical minimization objective. + Similar to MkMaximize. + + + + + Retrieve a lower bound for the objective handle. + + + + + Retrieve an upper bound for the objective handle. + + + + + Retrieve a lower bound for the objective handle. + + + + + Retrieve an upper bound for the objective handle. + + + + + Print the context to a string (SMT-LIB parseable benchmark). + + + + + Parse an SMT-LIB2 file with optimization objectives and constraints. + The parsed constraints and objectives are added to the optimization context. + + + + + Similar to FromFile. Instead it takes as argument a string. + + + + + A string that describes all available optimize solver parameters. + + + + + Sets the optimize solver parameters. + + + + + Retrieves parameter descriptions for Optimize solver. + + + + + The model of the last Check. + + + The result is null if Check was not invoked before, + if its results was not SATISFIABLE, or if model production is not enabled. + + + + + Return a string the describes why the last to check returned unknown + + + + + The set of asserted formulas. + + + + + The set of asserted formulas. + + + + + Optimize statistics. + + + + + Handle to objectives returned by objective functions. + + + + + Retrieve a lower bound for the objective handle. + + + + + Retrieve an upper bound for the objective handle. + + + + + Retrieve the value of an objective. + + + + + Retrieve a lower bound for the objective handle. + + + + + Retrieve an upper bound for the objective handle. + + + + + A ParamDescrs describes a set of parameters. + + + + + validate a set of parameters. + + + + + Retrieve kind of parameter. + + + + + Retrieve documentation of parameter. + + + + + Retrieves a string representation of the ParamDescrs. + + + + + Retrieve all names of parameters. + + + + + The size of the ParamDescrs. + + + + + A Params objects represents a configuration in the form of Symbol/value pairs. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + A string representation of the parameter set. + + + + + 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. + + + + + A string representation of the pattern. + + + + + The number of terms in the pattern. + + + + + The terms in the pattern. + + + + + 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 Context.NumProbes + and Context.ProbeNames. + It may also be obtained using the command (help-tactic) in the SMT 2.0 front-end. + + + + + Execute the probe over the goal. + + A probe always produce a double value. + "Boolean" probes return 0.0 for false, and a value different from 0.0 for true. + + + + Apply the probe to a goal. + + + + + Quantifier expressions. + + + + + Translates (copies) the quantifier to the Context . + + A context + A copy of the quantifier which is associated with + + + + Indicates whether the quantifier is universal. + + + + + Indicates whether the quantifier is existential. + + + + + The weight of the quantifier. + + + + + The number of patterns. + + + + + The patterns. + + + + + The number of no-patterns. + + + + + The no-patterns. + + + + + The number of bound variables. + + + + + The symbols for the bound variables. + + + + + The sorts of the bound variables. + + + + + The body of the quantifier. + + + + + Rational Numerals + + + + + Real expressions + + + + Constructor for RealExpr + + + + Returns a string representation in decimal notation. + + The result has at most decimal places. + + + + Returns a string representation of the numeral. + + + + + The numerator of a rational numeral. + + + + + The denominator of a rational numeral. + + + + + Converts the numerator of the rational to a BigInteger + + + + + Converts the denominator of the rational to a BigInteger + + + + + A real sort + + + + + Regular expression expressions + + + + Constructor for ReExpr + + + + Relation sorts. + + + + + The arity of the relation sort. + + + + + The sorts of the columns of the relation sort. + + + + + A regular expression sort + + + + + Sequence expressions + + + + Constructor for SeqExpr + + + + A Sequence sort + + + + + Set sorts. + + + + + Solvers. + + + + + Sets parameter on the solver + + + + + Sets parameter on the solver + + + + + Sets parameter on the solver + + + + + Sets parameter on the solver + + + + + Sets parameter on the solver + + + + + Sets parameter on the solver + + + + + Sets parameter on the solver + + + + + Sets parameter on the solver + + + + + Sets parameter on the solver + + + + + Sets parameter on the solver + + + + + Creates a backtracking point. + + + + + + Backtracks backtracking points. + + Note that an exception is thrown if is not smaller than NumScopes + + + + + Resets the Solver. + + This removes all assertions from the solver. + + + + Assert a constraint (or multiple) into the solver. + + + + + Alias for Assert. + + + + + Alias for Assert. + + + + + Assert multiple constraints into the solver, and track them (in the unsat) core + using the Boolean constants in ps. + + + This API is an alternative to 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 + and the Boolean literals + provided using with assumptions. + + + + + Assert a constraint into the solver, and track it (in the unsat) core + using the Boolean constant p. + + + This API is an alternative to 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 + and the Boolean literals + provided using with assumptions. + + + + + Load solver assertions from a file. + + + + + Load solver assertions from a string. + + + + + Checks whether the assertions in the solver are consistent or not. + + + + + + + + + + Checks whether the assertions in the solver are consistent or not. + + + + + + + + + + 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. + + + + + + + + + + Create a clone of the current solver with respect to ctx. + + + + + A string representation of the solver. + + + + + A string that describes all available solver parameters. + + + + + Sets the solver parameters. + + + + + Retrieves parameter descriptions for solver. + + + + + The current number of backtracking points (scopes). + + + + + + + The number of assertions in the solver. + + + + + The set of asserted formulas. + + + + + The model of the last Check. + + + The result is null if Check was not invoked before, + if its results was not SATISFIABLE, or if model production is not enabled. + + + + + The proof of the last Check. + + + The result is null if Check was not invoked before, + if its results was not UNSATISFIABLE, or if proof production is disabled. + + + + + The unsat core of the last Check. + + + The unsat core is a subset of Assertions + The result is empty if Check was not invoked before, + if its results was not UNSATISFIABLE, or if core production is disabled. + + + + + A brief justification of why the last call to Check returned UNKNOWN. + + + + + Solver statistics. + + + + + Objects of this class track statistical information about solvers. + + + + + A string representation of the statistical data. + + + + + The number of statistical data. + + + + + The data entries. + + + + + The statistical counters. + + + + + The value of a particular statistical counter. + + Returns null if the key is unknown. + + + + Statistical data is organized into pairs of [Key, Entry], where every + Entry is either a DoubleEntry or a UIntEntry + + + + + The key of the entry. + + + + + The string representation of the Entry. + + + + + The uint-value of the entry. + + + + + The double-value of the entry. + + + + + True if the entry is uint-valued. + + + + + True if the entry is double-valued. + + + + + The string representation of the the entry's value. + + + + + Status values. + + + + + Used to signify an unsatisfiable status. + + + + + Used to signify an unknown status. + + + + + Used to signify a satisfiable status. + + + + + Named symbols + + + + + The string value of the symbol. + + Throws an exception if the symbol is not of string kind. + + + + Tactics are the basic building block for creating custom solvers for specific problem domains. + The complete list of tactics may be obtained using Context.NumTactics + and Context.TacticNames. + It may also be obtained using the command (help-tactic) in the SMT 2.0 front-end. + + + + + Execute the tactic over the goal. + + + + + A string containing a description of parameters accepted by the tactic. + + + + + Retrieves parameter descriptions for Tactics. + + + + + Apply the tactic to a goal. + + + + + Creates a solver that is implemented using the given tactic. + + + + + + DecRefQueue + + + + + Tuple sorts. + + + + + The constructor function of the tuple. + + + + + The number of fields in the tuple. + + + + + The field declarations. + + + + + Uninterpreted Sorts + + + + + Version information. + + Note that this class is static. + + + + A string representation of the version information. + + + + + The major version + + + + + The minor version + + + + + The build version + + + + + The revision + + + + + A full version string + + + + 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/com.microsoft.z3.jar 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/libz3.dll 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/libz3.lib 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/libz3java.dll 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/libz3java.lib 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/msvcp110.dll 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/msvcr110.dll 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/python/z3/__init__.pyc 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('')) + for k, v in self: + if even: + out.write(u('')) + even = False + else: + out.write(u('')) + even = True + out.write(u('' % (k, v))) + out.write(u('
%s%s
')) + 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 "sat" + elif self.r == Z3_L_FALSE: + return "unsat" + else: + return "unknown" + 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('') + for t in tactics(): + if even: + print('') + even = False + else: + print('') + even = True + print('' % (t, insert_line_breaks(tactic_description(t), 40))) + print('
%s%s
') + 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('') + for p in probes(): + if even: + print('') + even = False + else: + print('') + even = True + print('' % (p, insert_line_breaks(probe_description(p), 40))) + print('
%s%s
') + 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("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 _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("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_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("proved") + elif r == unknown: + print("failed to prove") + print(s.model()) + else: + print("counterexample") + 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/python/z3/z3.pyc 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/python/z3/z3consts.pyc 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/python/z3/z3core.pyc 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/python/z3/z3num.pyc 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/python/z3/z3poly.pyc 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 = '…' +# Overwrite some of the operators for HTML +_z3_pre_html_op_to_str = { Z3_OP_EQ : '=', Z3_OP_IFF : '=', Z3_OP_NOT : '¬', + Z3_OP_AND : '∧', Z3_OP_OR : '∨', Z3_OP_IMPLIES : '⇒', + Z3_OP_LT : '<', Z3_OP_GT : '>', Z3_OP_LE : '≤', Z3_OP_GE : '≥', + Z3_OP_MUL : '·', + Z3_OP_SLEQ : '≤', Z3_OP_SLT : '<', Z3_OP_SGEQ : '≥', Z3_OP_SGT : '>', + Z3_OP_ULEQ : '≤u', Z3_OP_ULT : '<u', + Z3_OP_UGEQ : '≥u', Z3_OP_UGT : '>u', + Z3_OP_BMUL : '·', + Z3_OP_BUDIV : '/u', Z3_OP_BUREM : '%u', + Z3_OP_BASHR : '>>', Z3_OP_BSHL : '<<', + Z3_OP_BLSHR : '>>u' + } + +# 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 "ζ%s" % 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 '' + 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 '' + + 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(' →', 1) + + def pp_unknown(self): + return 'unknown' + + 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%s' % (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("≠") + + 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('', 1), arg2_pp, to_format('', 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('ν%s' % 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 = '∀' + else: + header = '∃' + 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('') + for r in m: + _z3_assert(isinstance(r, list) or isinstance(r, tuple), "matrix expected") + print('') + for c in r: + print('' % c) + print('') + print('
%s
') + +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('
')) + 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/python/z3/z3printer.pyc 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/python/z3/z3rcf.pyc 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/python/z3/z3types.pyc 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 +############################################ +""" +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 Binary files /dev/null and b/rba.tool.core/lib32/z3/python/z3/z3util.pyc 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/vcomp110.dll 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 Binary files /dev/null and b/rba.tool.core/lib32/z3/z3.exe 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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> hook_notifierIdMap = new HashMap>(); + + 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 hookList = hook_notifierIdMap.get(targetNotifierId); + if (hookList == null) { + hookList = new ArrayList(); + hook_notifierIdMap.put(targetNotifierId, hookList); + } + hookList.add(hook); + } + + @Override + public void removeHook(IConsoleHook hook, String targetNotifierId) { + List hookList = hook_notifierIdMap.get(targetNotifierId); + if (hookList == null) { + return; + } + hookList.remove(hook); + } + + public void preNotify(String message, String notifierId) { + List 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 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 calculateAllConstraint(); + + Map> 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 attributes = new HashMap(); + 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 extends ComparisonOperatorEvaluator implements ComparisonAnd { + + public ComparisonAndEvaluator(ComparisonAnd o) { + super(o); + } + + @Override + public boolean evaluate(ValueSortedList list) { + // TODO Auto-generated method stub + return false; + } + + @Override + public int suggestIndex(ValueSortedList 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 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 extends ExpressionEvaluator 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 list); + + /** + * @param list + * @return -1 if it has no suggestion 9999 implies MAX group (last index) + */ + abstract public int suggestIndex(ValueSortedList list); + + @Override + public EList 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 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 eContents() { + return object.eContents(); + } + + @Override + public TreeIterator eAllContents() { + return object.eAllContents(); + } + + @Override + public boolean eIsProxy() { + return object.eIsProxy(); + } + + @Override + public EList 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 extends ComparisonOperatorEvaluator implements EqualToOperator { + + protected EqualToOperatorEvaluator(ComparisonOperator o) { + super(o); + } + + @Override + public boolean evaluate(ValueSortedList list) { + // TODO Auto-generated method stub + return false; + } + + @Override + public int suggestIndex(ValueSortedList 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 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 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 extends ComparisonOperatorEvaluator implements GreaterThanOperator { + + protected GreaterThanOperatorEvaluator(GreaterThanOperator o) { + super(o); + } + + @Override + public boolean evaluate(ValueSortedList 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 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 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 calculateArea_zorder(); + + Map calculateAllocatable_visibility(); + + Map 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 extends ComparisonOperatorEvaluator implements MuchGreaterThanOperator { + + static int MUCH_GAP = 10; + + public MuchGreaterThanOperatorEvaluator(MuchGreaterThanOperator o) { + super(o); + } + + @Override + public boolean evaluate(ValueSortedList 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 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 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 sortMap = new HashMap(); + + private boolean unsat = false; + + public void setSortValue(Map 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 { + private String name; + + private Collection member; + + public ValueGroup(String name) { + this.name = name; + member = new ArrayList(); + } + + 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 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 { + private List> list; + + private Collection unsorted; + + public ValueSortedList(Collection originalList) { + list = new ArrayList>(); + list.add(new ValueGroup("MIN")); + list.add(new ValueGroup("1")); + list.add(new ValueGroup("MAX")); + unsorted = new ArrayList(originalList); + sort(); + } + + public void add(T o) { + unsorted.add(o); + sort(); + } + + public void addAll(Collection 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 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 newGroup = new ValueGroup(Integer.toString(i)); + list.add(i, newGroup); + } + } + + list.get(index).add(e); + + } + + public List sortedList() { + List result = new ArrayList(); + for (ValueGroup i : list) { + result.addAll(i.getMember()); + } + return result; + } + + public List> getGroupList() { + return list; + } + + public List sortedListByBig() { + List result = new ArrayList(); + for (int index = list.size() - 1; index >= 0; index--) { + ValueGroup i = list.get(index); + result.addAll(i.getMember()); + } + return result; + } + + abstract protected Expression getValueExpression(T e); + + public int getGroupIndexOf(T e) { + for (ValueGroup i : list) { + if (i.getMember().contains(e)) { + return list.indexOf(i); + } + } + return -1; + } + + public int getGroupIndexOf(String groupName) { + for (ValueGroup i : list) { + if (i.getName().contentEquals(groupName)) { + return list.indexOf(i); + } + } + return -1; + } + + public ComparisonOperatorEvaluator createEvaluator(ComparisonOperator e) { + ComparisonOperatorEvaluator evaluator; + if (e instanceof GreaterThanOperator) { + evaluator = new GreaterThanOperatorEvaluator((GreaterThanOperator) e); + } else if (e instanceof MuchGreaterThanOperator) { + evaluator = new MuchGreaterThanOperatorEvaluator((MuchGreaterThanOperator) e); + } else if (e instanceof ComparisonAnd) { + evaluator = new ComparisonAndEvaluator((ComparisonAnd) e); + } else if (e instanceof EqualToOperator) { + evaluator = new EqualToOperatorEvaluator((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 { + private List> sortResults = new ArrayList>(); + + private boolean isUnsat; + + public List> getSortResults() { + return sortResults; + } + + public boolean addSortResult(SortResultSet sortResult) { + return sortResults.add(sortResult); + } + + public SortResultSet getSortResultSet(RuleObject obj) { + for (SortResultSet 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 { + 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 sortVisibility(List areas) { + SortResult sortResult = new SortResult(); + + try { + sortResult = doSortVisibility(areas); + sortResult.setUnsat(false); + } catch (RuntimeException e) { + sortResult.setUnsat(true); + } + + return sortResult; + } + + private SortResult doSortVisibility(List areas) { + SortResult sortResult = new SortResult(); + + Map> map = new HashMap>(); + for (Area area : areas) { + SortResultSet set = new SortResultSet(); + set.setElement(area); + sortResult.addSortResult(set); + map.put(area, set); + } + + ValueSortedList sortedElement = new ValueSortedList(areas) { + protected Expression getValueExpression(Area e) { + return e.getVisibility(); + } + }; + + for (ValueGroup valueGroup : sortedElement.getGroupList()) { + int value = convertValue(valueGroup.getName()); + for (Area member : valueGroup.getMember()) { + SortResultSet set = map.get(member); + set.setValue(value); + } + } + + return sortResult; + } + + public SortResult sortZorder(List areas) { + SortResult sortResult = new SortResult(); + + try { + sortResult = doSortZorder(areas); + sortResult.setUnsat(false); + } catch (RuntimeException e) { + sortResult.setUnsat(true); + } + + return sortResult; + } + + private SortResult doSortZorder(List areas) { + + SortResult sortResult = new SortResult(); + + Map> map = new HashMap>(); + for (Area area : areas) { + SortResultSet set = new SortResultSet(); + set.setElement(area); + sortResult.addSortResult(set); + map.put(area, set); + } + + ValueSortedList sortedElement = new ValueSortedList(areas) { + protected Expression getValueExpression(Area e) { + return e.getZorder(); + } + }; + + for (ValueGroup valueGroup : sortedElement.getGroupList()) { + int value = convertValue(valueGroup.getName()); + for (Area member : valueGroup.getMember()) { + SortResultSet set = map.get(member); + set.setValue(value); + } + } + return sortResult; + } + + public SortResult sortPriority(List contentStates) { + SortResult sortResult = new SortResult(); + + try { + sortResult = doSortPriority(contentStates); + sortResult.setUnsat(false); + } catch (RuntimeException e) { + sortResult.setUnsat(true); + } + + return sortResult; + } + + public SortResult doSortPriority(List contentStates) { + SortResult sortResult = new SortResult(); + + Map> map = new HashMap>(); + for (ContentState contentState : contentStates) { + SortResultSet set = new SortResultSet(); + set.setElement(contentState); + sortResult.addSortResult(set); + map.put(contentState, set); + } + + ValueSortedList sortedElement = new ValueSortedList(contentStates) { + protected Expression getValueExpression(ContentState e) { + return e.getValue(); + } + }; + + for (ValueGroup valueGroup : sortedElement.getGroupList()) { + int value = convertValue(valueGroup.getName()); + for (ContentState member : valueGroup.getMember()) { + SortResultSet 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 info = new ArrayList(); + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public List getInfo() { + return info; + } + + public void setInfo(List 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 setModel(Solver s, List 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 setSat(Solver s, List evaluatedExpr) { + + Map map = new HashMap(); + + 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 setUnsat(Solver s) { + + Map map = new HashMap(); + + 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 getErrors(Solver s, Status st) { + List list = new ArrayList(); + + 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 getErrors(Context ctx, Solver s, Status st, String constrName, List constrList, List constrLabelList) { + List list = new ArrayList(); + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + rba.tool.editor.endpoint + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + + + + .applied + 2 + C:/Users/10001135764/git/rba_tools/.metadata/rba.tool.editor.ui/rba.tool.editor.endpoint/.applied + + + 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/=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 Binary files /dev/null and b/rba.tool.editor.endpoint/lib/windows/z3/Microsoft.Z3.dll 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 @@ + + + + Microsoft.Z3 + + + + + Algebraic numbers + + + + + Arithmetic expressions (int/real) + + + + + Expressions are terms. + + + + + The abstract syntax tree (AST) class. + + + + + Internal base class for interfacing with native Z3 objects. + Should not be used externally. + + + + + Finalizer. + + + + + Disposes of the underlying native Z3 object. + + + + + Comparison operator. + + An AST + An AST + True if and are from the same context + and represent the same sort; false otherwise. + + + + Comparison operator. + + An AST + An AST + True if and are not from the same context + or represent different sorts; false otherwise. + + + + Object comparison. + + + + + Object Comparison. + + Another AST + Negative if the object should be sorted before , positive if after else zero. + + + + The AST's hash code. + + A hash code + + + + Translates (copies) the AST to the Context . + + A context + A copy of the AST which is associated with + + + + A string representation of the AST. + + + + + A string representation of the AST in s-expression notation. + + + + + A unique identifier for the AST (unique among all ASTs). + + + + + The kind of the AST. + + + + + Indicates whether the AST is an Expr + + + + + Indicates whether the AST is an application + + + + + Indicates whether the AST is a BoundVariable + + + + + Indicates whether the AST is a Quantifier + + + + + Indicates whether the AST is a Sort + + + + + Indicates whether the AST is a FunctionDeclaration + + + + + DecRefQueue interface + + + + + Sets the limit on numbers of objects that are kept back at GC collection. + + + + + + Returns a simplified version of the expression. + + A set of parameters to configure the simplifier + + + + + Update the arguments of the expression using the arguments + The number of new arguments should coincide with the current number of arguments. + + + + + Substitute every occurrence of from[i] in the expression with to[i], for i smaller than num_exprs. + + + The result is the new expression. The arrays from and to must have size num_exprs. + For every i smaller than num_exprs, we must have that + sort of from[i] must be equal to sort of to[i]. + + + + + Substitute every occurrence of from in the expression with to. + + + + + + Substitute the free variables in the expression with the expressions in + + + For every i smaller than num_exprs, the variable with de-Bruijn index i is replaced with term to[i]. + + + + + Translates (copies) the term to the Context . + + A context + A copy of the term which is associated with + + + + Returns a string representation of the expression. + + + + + Constructor for Expr + + + + + The function declaration of the function that is applied in this expression. + + + + + Indicates whether the expression is the true or false expression + or something else (Z3_L_UNDEF). + + + + + The number of arguments of the expression. + + + + + The arguments of the expression. + + + + + Indicates whether the term is a numeral + + + + + Indicates whether the term is well-sorted. + + True if the term is well-sorted, false otherwise. + + + + The Sort of the term. + + + + + Indicates whether the term represents a constant. + + + + + Indicates whether the term is an integer numeral. + + + + + Indicates whether the term is a real numeral. + + + + + Indicates whether the term is an algebraic number + + + + + Indicates whether the term has Boolean sort. + + + + + Indicates whether the term is the constant true. + + + + + Indicates whether the term is the constant false. + + + + + Indicates whether the term is an equality predicate. + + + + + Indicates whether the term is an n-ary distinct predicate (every argument is mutually distinct). + + + + + Indicates whether the term is a ternary if-then-else term + + + + + Indicates whether the term is an n-ary conjunction + + + + + Indicates whether the term is an n-ary disjunction + + + + + Indicates whether the term is an if-and-only-if (Boolean equivalence, binary) + + + + + Indicates whether the term is an exclusive or + + + + + Indicates whether the term is a negation + + + + + Indicates whether the term is an implication + + + + + Indicates whether the term is marked for interpolation. + + + + + + Indicates whether the term is of integer sort. + + + + + Indicates whether the term is of sort real. + + + + + Indicates whether the term is an arithmetic numeral. + + + + + Indicates whether the term is a less-than-or-equal + + + + + Indicates whether the term is a greater-than-or-equal + + + + + Indicates whether the term is a less-than + + + + + Indicates whether the term is a greater-than + + + + + Indicates whether the term is addition (binary) + + + + + Indicates whether the term is subtraction (binary) + + + + + Indicates whether the term is a unary minus + + + + + Indicates whether the term is multiplication (binary) + + + + + Indicates whether the term is division (binary) + + + + + Indicates whether the term is integer division (binary) + + + + + Indicates whether the term is remainder (binary) + + + + + Indicates whether the term is modulus (binary) + + + + + Indicates whether the term is a coercion of integer to real (unary) + + + + + Indicates whether the term is a coercion of real to integer (unary) + + + + + Indicates whether the term is a check that tests whether a real is integral (unary) + + + + + Indicates whether the term is of an array sort. + + + + + Indicates whether the term is an array store. + + It satisfies select(store(a,i,v),j) = if i = j then v else select(a,j). + Array store takes at least 3 arguments. + + + + Indicates whether the term is an array select. + + + + + Indicates whether the term is a constant array. + + For example, select(const(v),i) = v holds for every v and i. The function is unary. + + + + Indicates whether the term is a default array. + + For example default(const(v)) = v. The function is unary. + + + + Indicates whether the term is an array map. + + It satisfies map[f](a1,..,a_n)[i] = f(a1[i],...,a_n[i]) for every i. + + + + Indicates whether the term is an as-array term. + + An as-array term is n array value that behaves as the function graph of the + function passed as parameter. + + + + Indicates whether the term is set union + + + + + Indicates whether the term is set intersection + + + + + Indicates whether the term is set difference + + + + + Indicates whether the term is set complement + + + + + Indicates whether the term is set subset + + + + + Indicates whether the terms is of bit-vector sort. + + + + + Indicates whether the term is a bit-vector numeral + + + + + Indicates whether the term is a one-bit bit-vector with value one + + + + + Indicates whether the term is a one-bit bit-vector with value zero + + + + + Indicates whether the term is a bit-vector unary minus + + + + + Indicates whether the term is a bit-vector addition (binary) + + + + + Indicates whether the term is a bit-vector subtraction (binary) + + + + + Indicates whether the term is a bit-vector multiplication (binary) + + + + + Indicates whether the term is a bit-vector signed division (binary) + + + + + Indicates whether the term is a bit-vector unsigned division (binary) + + + + + Indicates whether the term is a bit-vector signed remainder (binary) + + + + + Indicates whether the term is a bit-vector unsigned remainder (binary) + + + + + Indicates whether the term is a bit-vector signed modulus + + + + + Indicates whether the term is a bit-vector signed division by zero + + + + + Indicates whether the term is a bit-vector unsigned division by zero + + + + + Indicates whether the term is a bit-vector signed remainder by zero + + + + + Indicates whether the term is a bit-vector unsigned remainder by zero + + + + + Indicates whether the term is a bit-vector signed modulus by zero + + + + + Indicates whether the term is an unsigned bit-vector less-than-or-equal + + + + + Indicates whether the term is a signed bit-vector less-than-or-equal + + + + + Indicates whether the term is an unsigned bit-vector greater-than-or-equal + + + + + Indicates whether the term is a signed bit-vector greater-than-or-equal + + + + + Indicates whether the term is an unsigned bit-vector less-than + + + + + Indicates whether the term is a signed bit-vector less-than + + + + + Indicates whether the term is an unsigned bit-vector greater-than + + + + + Indicates whether the term is a signed bit-vector greater-than + + + + + Indicates whether the term is a bit-wise AND + + + + + Indicates whether the term is a bit-wise OR + + + + + Indicates whether the term is a bit-wise NOT + + + + + Indicates whether the term is a bit-wise XOR + + + + + Indicates whether the term is a bit-wise NAND + + + + + Indicates whether the term is a bit-wise NOR + + + + + Indicates whether the term is a bit-wise XNOR + + + + + Indicates whether the term is a bit-vector concatenation (binary) + + + + + Indicates whether the term is a bit-vector sign extension + + + + + Indicates whether the term is a bit-vector zero extension + + + + + Indicates whether the term is a bit-vector extraction + + + + + Indicates whether the term is a bit-vector repetition + + + + + Indicates whether the term is a bit-vector reduce OR + + + + + Indicates whether the term is a bit-vector reduce AND + + + + + Indicates whether the term is a bit-vector comparison + + + + + Indicates whether the term is a bit-vector shift left + + + + + Indicates whether the term is a bit-vector logical shift right + + + + + Indicates whether the term is a bit-vector arithmetic shift left + + + + + Indicates whether the term is a bit-vector rotate left + + + + + Indicates whether the term is a bit-vector rotate right + + + + + Indicates whether the term is a bit-vector rotate left (extended) + + Similar to Z3_OP_ROTATE_LEFT, but it is a binary operator instead of a parametric one. + + + + Indicates whether the term is a bit-vector rotate right (extended) + + Similar to Z3_OP_ROTATE_RIGHT, but it is a binary operator instead of a parametric one. + + + + Indicates whether the term is a coercion from integer to bit-vector + + This function is not supported by the decision procedures. Only the most + rudimentary simplification rules are applied to this function. + + + + Indicates whether the term is a coercion from bit-vector to integer + + This function is not supported by the decision procedures. Only the most + rudimentary simplification rules are applied to this function. + + + + Indicates whether the term is a bit-vector carry + + Compute the carry bit in a full-adder. The meaning is given by the + equivalence (carry l1 l2 l3) <=> (or (and l1 l2) (and l1 l3) (and l2 l3))) + + + + Indicates whether the term is a bit-vector ternary XOR + + The meaning is given by the equivalence (xor3 l1 l2 l3) <=> (xor (xor l1 l2) l3) + + + + Indicates whether the term is a label (used by the Boogie Verification condition generator). + + The label has two parameters, a string and a Boolean polarity. It takes one argument, a formula. + + + + Indicates whether the term is a label literal (used by the Boogie Verification condition generator). + + A label literal has a set of string parameters. It takes no arguments. + + + + Indicates whether the term is a binary equivalence modulo namings. + + This binary predicate is used in proof terms. + It captures equisatisfiability and equivalence modulo renamings. + + + + Indicates whether the term is a Proof for the expression 'true'. + + + + + Indicates whether the term is a proof for a fact asserted by the user. + + + + + Indicates whether the term is a proof for a fact (tagged as goal) asserted by the user. + + + + + Indicates whether the term is proof via modus ponens + + + 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). + + + + Indicates whether the term is a proof for (R t t), where R is a reflexive relation. + + 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'. + + + + Indicates whether the term is proof by symmetricity of a relation + + + 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. + + + + + Indicates whether the term is a proof by transitivity of a relation + + + 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) + + + + + Indicates whether the term is a proof by condensed transitivity of a relation + + + 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. + + + + + Indicates whether the term is a monotonicity proof object. + + + 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. + + + + + Indicates whether the term is a quant-intro proof + + + 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)) + + + + + Indicates whether the term is a distributivity proof object. + + + 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. + + + + + Indicates whether the term is a proof by elimination of AND + + + 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 + + + + + Indicates whether the term is a proof by eliminiation of not-or + + + 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) + + + + + Indicates whether the term is a proof by rewriting + + + 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) + + + + + Indicates whether the term is a proof by rewriting + + + 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) + + + + + Indicates whether the term is a proof for pulling quantifiers out. + + + A proof for (iff (f (forall (x) q(x)) r) (forall (x) (f (q x) r))). This proof object has no antecedents. + + + + + Indicates whether the term is a proof for pulling quantifiers out. + + + 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 + + + + + Indicates whether the term is a proof for pushing quantifiers in. + + + 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 + + + + + Indicates whether the term is a proof for elimination of unused variables. + + + 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. + + + + + Indicates whether the term is a proof for destructive equality resolution + + + 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. + + + + + Indicates whether the term is a proof for quantifier instantiation + + + A proof of (or (not (forall (x) (P x))) (P a)) + + + + + Indicates whether the term is a hypthesis marker. + + Mark a hypothesis in a natural deduction style proof. + + + + Indicates whether the term is a proof by lemma + + + 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. + + + + + Indicates whether the term is a proof by unit resolution + + + 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') + + + + + Indicates whether the term is a proof by iff-true + + + T1: p + [iff-true T1]: (iff p true) + + + + + Indicates whether the term is a proof by iff-false + + + T1: (not p) + [iff-false T1]: (iff p false) + + + + + Indicates whether the term is a proof by commutativity + + + [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. + + + + + Indicates whether the term is a proof for Tseitin-like axioms + + + 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). + + + + + Indicates whether the term is a proof for introduction of a name + + + 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) + + + + + Indicates whether the term is a proof for application of a definition + + + [apply-def T1]: F ~ n + F is 'equivalent' to n, given that T1 is a proof that + n is a name for F. + + + + + Indicates whether the term is a proof iff-oeq + + + T1: (iff p q) + [iff~ T1]: (~ p q) + + + + + Indicates whether the term is a proof for a positive NNF step + + + 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'. + + + + + Indicates whether the term is a proof for a negative NNF step + + + 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'))) + + + + + Indicates whether the term is a proof for (~ P Q) here Q is in negation normal form. + + + 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. + + + + + Indicates whether the term is a proof for (~ P Q) where Q is in conjunctive normal form. + + + 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. + + + + + Indicates whether the term is a proof for a Skolemization step + + + 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. + + + + + Indicates whether the term is a proof by modus ponens for equi-satisfiability. + + + Modus ponens style rule for equi-satisfiability. + T1: p + T2: (~ p q) + [mp~ T1 T2]: q + + + + + Indicates whether the term is a proof for theory lemma + + + 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 (<= t1 t2) (<= t2 t1))) + - gcd-test - Indicates an integer linear arithmetic lemma that uses a gcd test. + + + + + Indicates whether the term is of relation sort. + + + + + Indicates whether the term is an relation store + + + Insert a record into a relation. + The function takes n+1 arguments, where the first argument is the relation and the remaining n elements + correspond to the n columns of the relation. + + + + + Indicates whether the term is an empty relation + + + + + Indicates whether the term is a test for the emptiness of a relation + + + + + Indicates whether the term is a relational join + + + + + Indicates whether the term is the union or convex hull of two relations. + + The function takes two arguments. + + + + Indicates whether the term is the widening of two relations + + The function takes two arguments. + + + + Indicates whether the term is a projection of columns (provided as numbers in the parameters). + + The function takes one argument. + + + + Indicates whether the term is a relation filter + + + 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. + + + + + Indicates whether the term is an intersection of a relation with the negation of another. + + + 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. + + + + + Indicates whether the term is the renaming of a column in a relation + + + The function takes one argument. + The parameters contain the renaming as a cycle. + + + + + Indicates whether the term is the complement of a relation + + + + + Indicates whether the term is a relational select + + + Check if a record is an element of the relation. + The function takes n+1 arguments, where the first argument is a relation, + and the remaining n arguments correspond to a record. + + + + + Indicates whether the term is a relational clone (copy) + + + 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 + to perform destructive updates to the first argument. + + + + + Indicates whether the term is of an array sort. + + + + + Indicates whether the term is a less than predicate over a finite domain. + + + + + Indicates whether the terms is of floating-point sort. + + + + + Indicates whether the terms is of floating-point rounding mode sort. + + + + + Indicates whether the term is a floating-point numeral + + + + + Indicates whether the term is a floating-point rounding mode numeral + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + Indicates whether the term is a floating-point rounding mode numeral + + + + + Indicates whether the term is a floating-point +oo + + + + + Indicates whether the term is a floating-point -oo + + + + + Indicates whether the term is a floating-point NaN + + + + + Indicates whether the term is a floating-point +zero + + + + + Indicates whether the term is a floating-point -zero + + + + + Indicates whether the term is a floating-point addition term + + + + + Indicates whether the term is a floating-point subtraction term + + + + + Indicates whether the term is a floating-point negation term + + + + + Indicates whether the term is a floating-point multiplication term + + + + + Indicates whether the term is a floating-point divison term + + + + + Indicates whether the term is a floating-point remainder term + + + + + Indicates whether the term is a floating-point term absolute value term + + + + + Indicates whether the term is a floating-point minimum term + + + + + Indicates whether the term is a floating-point maximum term + + + + + Indicates whether the term is a floating-point fused multiply-add term + + + + + Indicates whether the term is a floating-point square root term + + + + + Indicates whether the term is a floating-point roundToIntegral term + + + + + Indicates whether the term is a floating-point equality term + + + + + Indicates whether the term is a floating-point less-than term + + + + + Indicates whether the term is a floating-point greater-than term + + + + + Indicates whether the term is a floating-point less-than or equal term + + + + + Indicates whether the term is a floating-point greater-than or erqual term + + + + + Indicates whether the term is a floating-point isNaN predicate term + + + + + Indicates whether the term is a floating-point isInf predicate term + + + + + Indicates whether the term is a floating-point isZero predicate term + + + + + Indicates whether the term is a floating-point isNormal term + + + + + Indicates whether the term is a floating-point isSubnormal predicate term + + + + + Indicates whether the term is a floating-point isNegative predicate term + + + + + Indicates whether the term is a floating-point isPositive predicate term + + + + + Indicates whether the term is a floating-point constructor term + + + + + Indicates whether the term is a floating-point conversion term + + + + + Indicates whether the term is a floating-point conversion from unsigned bit-vector term + + + + + Indicates whether the term is a floating-point conversion to unsigned bit-vector term + + + + + Indicates whether the term is a floating-point conversion to signed bit-vector term + + + + + Indicates whether the term is a floating-point conversion to real term + + + + + Indicates whether the term is a floating-point conversion to IEEE-754 bit-vector term + + + + + The de-Burijn index of a bound variable. + + + 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. + + 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)) + + 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. + + + + Constructor for ArithExpr + + + Operator overloading for arithmetical divsion operator (over reals) + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + Operator overloading for arithmetical operator + + + + Return a upper bound for a given real algebraic number. + The interval isolating the number is smaller than 1/10^. + + + the precision of the result + A numeral Expr of sort Real + + + + Return a lower bound for the given real algebraic number. + The interval isolating the number is smaller than 1/10^. + + + + A numeral Expr of sort Real + + + + Returns a string representation in decimal notation. + + The result has at most decimal places. + + + + ApplyResult objects represent the result of an application of a + tactic to a goal. It contains the subgoals that were produced. + + + + + Convert a model for the subgoal into a model for the original + goal g, that the ApplyResult was obtained from. + + A model for g + + + + A string representation of the ApplyResult. + + + + + The number of Subgoals. + + + + + Retrieves the subgoals from the ApplyResult. + + + + + An arithmetic sort, i.e., Int or Real. + + + + + The Sort class implements type information for ASTs. + + + + + Comparison operator. + + A Sort + A Sort + True if and are from the same context + and represent the same sort; false otherwise. + + + + Comparison operator. + + A Sort + A Sort + True if and are not from the same context + or represent different sorts; false otherwise. + + + + Equality operator for objects of type Sort. + + + + + + + Hash code generation for Sorts + + A hash code + + + + A string representation of the sort. + + + + + Sort constructor + + + + + Returns a unique identifier for the sort. + + + + + The kind of the sort. + + + + + The name of the sort + + + + + Array expressions + + + + Constructor for ArrayExpr + + + + Array sorts. + + + + + The domain of the array sort. + + + + + The range of the array sort. + + + + + Map from AST to AST + + + + + Checks whether the map contains the key . + + An AST + True if is a key in the map, false otherwise. + + + + Finds the value associated with the key . + + + This function signs an error when is not a key in the map. + + An AST + + + + Stores or replaces a new key/value pair in the map. + + The key AST + The value AST + + + + Erases the key from the map. + + An AST + + + + Removes all keys from the map. + + + + + Retrieves a string representation of the map. + + + + + The size of the map + + + + + The keys stored in the map. + + + + + Vectors of ASTs. + + + + + Resize the vector to . + + The new size of the vector. + + + + Add the AST to the back of the vector. The size + is increased by 1. + + An AST + + + + Translates all ASTs in the vector to . + + A context + A new ASTVector + + + + Retrieves a string representation of the vector. + + + + + Translates an AST vector into an AST[] + + + + + Translates an ASTVector into an Expr[] + + + + + Translates an ASTVector into a BoolExpr[] + + + + + Translates an ASTVector into a BitVecExpr[] + + + + + Translates an ASTVector into a ArithExpr[] + + + + + Translates an ASTVector into a ArrayExpr[] + + + + + Translates an ASTVector into a DatatypeExpr[] + + + + + Translates an ASTVector into a FPExpr[] + + + + + Translates an ASTVector into a FPRMExpr[] + + + + + Translates an ASTVector into a IntExpr[] + + + + + Translates an ASTVector into a RealExpr[] + + + + + The size of the vector + + + + + Retrieves the i-th object in the vector. + + May throw an IndexOutOfBoundsException when is out of range. + Index + An AST + + + + Bit-vector expressions + + + + Constructor for BitVecExpr + + + + The size of the sort of a bit-vector term. + + + + + Bit-vector numerals + + + + + Returns a string representation of the numeral. + + + + + Retrieve the 64-bit unsigned integer value. + + + + + Retrieve the int value. + + + + + Retrieve the 64-bit int value. + + + + + Retrieve the int value. + + + + + Retrieve the BigInteger value. + + + + + Bit-vector sorts. + + + + + The size of the bit-vector sort. + + + + + Boolean expressions + + + + Constructor for BoolExpr + + + Disjunction of Boolean expressions + + + Conjunction of Boolean expressions + + + Xor of Boolean expressions + + + Negation + + + + A Boolean sort. + + + + + Constructors are used for datatype sorts. + + + + + Destructor. + + + + + The number of fields of the constructor. + + + + + The function declaration of the constructor. + + + + + The function declaration of the tester. + + + + + The function declarations of the accessors + + + + + Lists of constructors + + + + + Destructor. + + + + + The main interaction with Z3 happens via the Context. + + + + + Constructor. + + + + + Constructor. + + + 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 + + + + + Creates a new symbol using an integer. + + + Not all integers can be passed to this function. + The legal range of unsigned integers is 0 to 2^30-1. + + + + + Create a symbol using a string. + + + + + Create an array of symbols. + + + + + Create a new Boolean sort. + + + + + Create a new uninterpreted sort. + + + + + Create a new uninterpreted sort. + + + + + Create a new integer sort. + + + + + Create a real sort. + + + + + Create a new bit-vector sort. + + + + + Create a new sequence sort. + + + + + Create a new regular expression sort. + + + + + Create a new array sort. + + + + + Create a new tuple sort. + + + + + Create a new enumeration sort. + + + + + Create a new enumeration sort. + + + + + Create a new list sort. + + + + + Create a new list sort. + + + + + Create a new finite domain sort. + The result is a sort + + The name used to identify the sort + The size of the sort + + + + Create a new finite domain sort. + The result is a sort + Elements of the sort are created using , + and the elements range from 0 to size-1. + + The name used to identify the sort + The size of the sort + + + + Create a datatype constructor. + + constructor name + name of recognizer function. + names of the constructor fields. + field sorts, 0 if the field sort refers to a recursive sort. + 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. + + + + Create a datatype constructor. + + + + + + + + + + + Create a new datatype sort. + + + + + Create a new datatype sort. + + + + + Create mutually recursive datatypes. + + names of datatype sorts + list of constructors, one list per sort. + + + + Create mutually recursive data-types. + + + + + + + + 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. + + + + + Creates a new function declaration. + + + + + Creates a new function declaration. + + + + + Creates a new function declaration. + + + + + Creates a new function declaration. + + + + + Creates a fresh function declaration with a name prefixed with . + + + + + + + Creates a new constant function declaration. + + + + + Creates a new constant function declaration. + + + + + Creates a fresh constant function declaration with a name prefixed with . + + + + + + + Creates a new bound variable. + + The de-Bruijn index of the variable + The sort of the variable + + + + Create a quantifier pattern. + + + + + Creates a new Constant of sort and named . + + + + + Creates a new Constant of sort and named . + + + + + Creates a fresh Constant of sort and a + name prefixed with . + + + + + Creates a fresh constant from the FuncDecl . + + A decl of a 0-arity function + + + + Create a Boolean constant. + + + + + Create a Boolean constant. + + + + + Creates an integer constant. + + + + + Creates an integer constant. + + + + + Creates a real constant. + + + + + Creates a real constant. + + + + + Creates a bit-vector constant. + + + + + Creates a bit-vector constant. + + + + + Create a new function application. + + + + + Create a new function application. + + + + + The true Term. + + + + + The false Term. + + + + + Creates a Boolean value. + + + + + Creates the equality = . + + + + + Creates a distinct term. + + + + + Mk an expression representing not(a). + + + + + Create an expression representing an if-then-else: ite(t1, t2, t3). + + An expression with Boolean sort + An expression + An expression with the same sort as + + + + Create an expression representing t1 iff t2. + + + + + Create an expression representing t1 -> t2. + + + + + Create an expression representing t1 xor t2. + + + + + Create an expression representing t[0] and t[1] and .... + + + + + Create an expression representing t[0] and t[1] and .... + + + + + Create an expression representing t[0] or t[1] or .... + + + + + Create an expression representing t[0] or t[1] or .... + + + + + Create an expression representing t[0] + t[1] + .... + + + + + Create an expression representing t[0] + t[1] + .... + + + + + Create an expression representing t[0] * t[1] * .... + + + + + Create an expression representing t[0] * t[1] * .... + + + + + Create an expression representing t[0] - t[1] - .... + + + + + Create an expression representing -t. + + + + + Create an expression representing t1 / t2. + + + + + Create an expression representing t1 mod t2. + + The arguments must have int type. + + + + Create an expression representing t1 rem t2. + + The arguments must have int type. + + + + Create an expression representing t1 ^ t2. + + + + + Create an expression representing t1 < t2 + + + + + Create an expression representing t1 <= t2 + + + + + Create an expression representing t1 > t2 + + + + + Create an expression representing t1 >= t2 + + + + + Coerce an integer to a real. + + + 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 k and + and asserting MakeInt2Real(k) <= t1 < MkInt2Real(k)+1. + The argument must be of integer sort. + + + + + Coerce a real to an integer. + + + The semantics of this function follows the SMT-LIB standard for the function to_int. + The argument must be of real sort. + + + + + Creates an expression that checks whether a real number is an integer. + + + + + Bitwise negation. + + The argument must have a bit-vector sort. + + + + Take conjunction of bits in a vector, return vector of length 1. + + The argument must have a bit-vector sort. + + + + Take disjunction of bits in a vector, return vector of length 1. + + The argument must have a bit-vector sort. + + + + Bitwise conjunction. + + The arguments must have a bit-vector sort. + + + + Bitwise disjunction. + + The arguments must have a bit-vector sort. + + + + Bitwise XOR. + + The arguments must have a bit-vector sort. + + + + Bitwise NAND. + + The arguments must have a bit-vector sort. + + + + Bitwise NOR. + + The arguments must have a bit-vector sort. + + + + Bitwise XNOR. + + The arguments must have a bit-vector sort. + + + + Standard two's complement unary minus. + + The arguments must have a bit-vector sort. + + + + Two's complement addition. + + The arguments must have the same bit-vector sort. + + + + Two's complement subtraction. + + The arguments must have the same bit-vector sort. + + + + Two's complement multiplication. + + The arguments must have the same bit-vector sort. + + + + Unsigned division. + + + It is defined as the floor of t1/t2 if \c t2 is + different from zero. If t2 is zero, then the result + is undefined. + The arguments must have the same bit-vector sort. + + + + + Signed division. + + + It is defined in the following way: + + - The \c floor of t1/t2 if \c t2 is different from zero, and t1*t2 >= 0. + + - The \c ceiling of t1/t2 if \c t2 is different from zero, and t1*t2 < 0. + + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Unsigned remainder. + + + It is defined as t1 - (t1 /u t2) * t2, where /u represents unsigned division. + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Signed remainder. + + + It is defined as t1 - (t1 /s t2) * t2, where /s represents signed division. + The most significant bit (sign) of the result is equal to the most significant bit of \c t1. + + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Two's complement signed remainder (sign follows divisor). + + + If t2 is zero, then the result is undefined. + The arguments must have the same bit-vector sort. + + + + + Unsigned less-than + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed less-than + + + The arguments must have the same bit-vector sort. + + + + + Unsigned less-than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed less-than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Unsigned greater than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed greater than or equal to. + + + The arguments must have the same bit-vector sort. + + + + + Unsigned greater-than. + + + The arguments must have the same bit-vector sort. + + + + + Two's complement signed greater-than. + + + The arguments must have the same bit-vector sort. + + + + + Bit-vector concatenation. + + + The arguments must have a bit-vector sort. + + + The result is a bit-vector of size n1+n2, where n1 (n2) + is the size of t1 (t2). + + + + + Bit-vector extraction. + + + Extract the bits down to from a bitvector of + size m to yield a new bitvector of size n, where + n = high - low + 1. + The argument must have a bit-vector sort. + + + + + Bit-vector sign extension. + + + Sign-extends the given bit-vector to the (signed) equivalent bitvector of + size m+i, where \c m is the size of the given bit-vector. + The argument must have a bit-vector sort. + + + + + Bit-vector zero extension. + + + Extend the given bit-vector with zeros to the (unsigned) equivalent + bitvector of size m+i, where \c m is the size of the + given bit-vector. + The argument must have a bit-vector sort. + + + + + Bit-vector repetition. + + + The argument must have a bit-vector sort. + + + + + Shift left. + + + It is equivalent to multiplication by 2^x where \c x is the value of . + + 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. + + + + + Logical shift right + + + It is equivalent to unsigned division by 2^x where \c x is the value of . + + 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. + + + + + Arithmetic shift right + + + 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. + + + + + Rotate Left. + + + Rotate bits of \c t to the left \c i times. + The argument must have a bit-vector sort. + + + + + Rotate Right. + + + Rotate bits of \c t to the right \c i times. + The argument must have a bit-vector sort. + + + + + Rotate Left. + + + Rotate bits of to the left times. + The arguments must have the same bit-vector sort. + + + + + Rotate Right. + + + Rotate bits of to the right times. + The arguments must have the same bit-vector sort. + + + + + Create an bit bit-vector from the integer argument . + + + 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. + + + + + Create an integer from the bit-vector argument . + + + 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 [0..2^N-1], where + N are the number of bits in . + 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. + + + + + Create a predicate that checks that the bit-wise addition does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise addition does not underflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise subtraction does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise subtraction does not underflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise signed division does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise negation does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise multiplication does not overflow. + + + The arguments must be of bit-vector sort. + + + + + Create a predicate that checks that the bit-wise multiplication does not underflow. + + + The arguments must be of bit-vector sort. + + + + + Create an array constant. + + + + + Create an array constant. + + + + + Array read. + + + The argument a is the array and i is the index + of the array that gets read. + + The node a must have an array sort [domain -> range], + and i must have the sort domain. + The sort of the result is range. + + + + + + + Array update. + + + The node a must have an array sort [domain -> range], + i must have sort domain, + v must have sort range. The sort of the result is [domain -> range]. + 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 a + (with respect to select) + on all indices except for i, where it maps to v + (and the select of a with + respect to i may be a different value). + + + + + + + Create a constant array. + + + The resulting term is an array, such that a selecton an arbitrary index + produces the value v. + + + + + + + Maps f on the argument arrays. + + + Eeach element of args must be of an array sort [domain_i -> range_i]. + The function declaration f must have type range_1 .. range_n -> range. + v must have sort range. The sort of the result is [domain_i -> range]. + + + + + + + + Access the array default value. + + + Produces the default range value, for arrays that can be represented as + finite maps with a default range value. + + + + + Create Extentionality index. Two arrays are equal if and only if they are equal on the index returned by MkArrayExt. + + + + + Create a set type. + + + + + Create an empty set. + + + + + Create the full set. + + + + + Add an element to the set. + + + + + Remove an element from a set. + + + + + Take the union of a list of sets. + + + + + Take the intersection of a list of sets. + + + + + Take the difference between two sets. + + + + + Take the complement of a set. + + + + + Check for set membership. + + + + + Check for subsetness of sets. + + + + + Create the empty sequence. + + + + + Create the singleton sequence. + + + + + Create a string constant. + + + + + Concatentate sequences. + + + + + Retrieve the length of a given sequence. + + + + + Check for sequence prefix. + + + + + Check for sequence suffix. + + + + + Check for sequence containment of s2 in s1. + + + + + Retrieve sequence of length one at index. + + + + + Extract subsequence. + + + + + Extract index of sub-string starting at offset. + + + + + Replace the first occurrence of src by dst in s. + + + + + Convert a regular expression that accepts sequence s. + + + + + Check for regular expression membership. + + + + + Take the Kleene star of a regular expression. + + + + + Take the Kleene plus of a regular expression. + + + + + Create the optional regular expression. + + + + + Create the concatenation of regular languages. + + + + + Create the union of regular languages. + + + + + Create an at-most-k constraint. + + + + + Create a pseudo-Boolean less-or-equal constraint. + + + + + Create a pseudo-Boolean equal constraint. + + + + + Create a Term of a given sort. + + 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 [num]* / [num]*. + The sort of the numeral. In the current implementation, the given sort can be an int, real, or bit-vectors of arbitrary size. + A Term with value and sort + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + 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 MakeNumeral since it is not necessary to parse a string. + + Value of the numeral + Sort of the numeral + A Term with value and type + + + + Create a real from a fraction. + + numerator of rational. + denominator of rational. + A Term with value / and sort Real + + + + + Create a real numeral. + + A string representing the Term value in decimal notation. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create a real numeral. + + value of the numeral. + A Term with value and sort Real + + + + Create an integer numeral. + + A string representing the Term value in decimal notation. + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create an integer numeral. + + value of the numeral. + A Term with value and sort Integer + + + + Create a bit-vector numeral. + + A string representing the value in decimal notation. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a bit-vector numeral. + + value of the numeral. + the size of the bit-vector + + + + Create a universal Quantifier. + + + Creates a forall formula, where is the weight, + is an array of patterns, is an array + with the sorts of the bound variables, is an array with the + 'names' of the bound variables, and 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 . + Z3 applies the convention that the last element in and + refers to the variable with index 0, the second to last element + of and refers to the variable + with index 1, etc. + + the sorts of the bound variables. + names of the bound variables + the body of the quantifier. + quantifiers are associated with weights indicating the importance of using the quantifier during instantiation. By default, pass the weight 0. + array containing the patterns created using MkPattern. + array containing the anti-patterns created using MkPattern. + optional symbol to track quantifier. + optional symbol to track skolem constants. + + + + Create a universal Quantifier. + + + Creates a universal quantifier using a list of constants that will + form the set of bound variables. + + + + + + Create an existential Quantifier. + + + Creates an existential quantifier using de-Brujin indexed variables. + (). + + + + + Create an existential Quantifier. + + + Creates an existential quantifier using a list of constants that will + form the set of bound variables. + + + + + + Create a Quantifier. + + + + + + Create a Quantifier. + + + + + + Convert a benchmark into an SMT-LIB formatted string. + + Name of the benchmark. The argument is optional. + The benchmark logic. + The status string (sat, unsat, or unknown) + Other attributes, such as source, difficulty or category. + Auxiliary assumptions. + Formula to be checked for consistency in conjunction with assumptions. + A string representation of the benchmark. + + + + Parse the given string using the SMT-LIB parser. + + + The symbol table of the parser can be initialized using the given sorts and declarations. + The symbols in the arrays and + don't need to match the names of the sorts and declarations in the arrays + and . This is a useful feature since we can use arbitrary names to + reference sorts and declarations. + + + + + Parse the given file using the SMT-LIB parser. + + + + + + Parse the given string using the SMT-LIB2 parser. + + + A conjunction of assertions in the scope (up to push/pop) at the end of the string. + + + + Parse the given file using the SMT-LIB2 parser. + + + + + + Creates a new Goal. + + + Note that the Context must have been created with proof generation support if + is set to true here. + + Indicates whether model generation should be enabled. + Indicates whether unsat core generation should be enabled. + Indicates whether proof generation should be enabled. + + + + Creates a new ParameterSet. + + + + + Returns a string containing a description of the tactic with the given name. + + + + + Creates a new Tactic. + + + + + Create a tactic that applies to a Goal and + then to every subgoal produced by . + + + + + Create a tactic that applies to a Goal and + then to every subgoal produced by . + + + Shorthand for AndThen. + + + + + Create a tactic that first applies to a Goal and + if it fails then returns the result of applied to the Goal. + + + + + Create a tactic that applies to a goal for milliseconds. + + + If does not terminate within milliseconds, then it fails. + + + + + Create a tactic that applies to a given goal if the probe + evaluates to true. + + + If evaluates to false, then the new tactic behaves like the skip tactic. + + + + + Create a tactic that applies to a given goal if the probe + evaluates to true and otherwise. + + + + + Create a tactic that keeps applying until the goal is not + modified anymore or the maximum number of iterations is reached. + + + + + Create a tactic that just returns the given goal. + + + + + Create a tactic always fails. + + + + + Create a tactic that fails if the probe evaluates to false. + + + + + Create a tactic that fails if the goal is not triviall satisfiable (i.e., empty) + or trivially unsatisfiable (i.e., contains `false'). + + + + + Create a tactic that applies using the given set of parameters . + + + + + Create a tactic that applies using the given set of parameters . + + Alias for UsingParams + + + + Create a tactic that applies the given tactics in parallel until one of them succeeds (i.e., the first that doesn't fail). + + + + + Create a tactic that applies to a given goal and then + to every subgoal produced by . The subgoals are processed in parallel. + + + + + Interrupt the execution of a Z3 procedure. + + This procedure can be used to interrupt: solvers, simplifiers and tactics. + + + + Returns a string containing a description of the probe with the given name. + + + + + Creates a new Probe. + + + + + Create a probe that always evaluates to . + + + + + Create a probe that evaluates to "true" when the value returned by + is less than the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is greater than the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is less than or equal the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is greater than or equal the value returned by + + + + + Create a probe that evaluates to "true" when the value returned by + is equal to the value returned by + + + + + Create a probe that evaluates to "true" when the value + and evaluate to "true". + + + + + Create a probe that evaluates to "true" when the value + or evaluate to "true". + + + + + Create a probe that evaluates to "true" when the value + does not evaluate to "true". + + + + + Creates a new (incremental) solver. + + + 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. + + + + + Creates a new (incremental) solver. + + + + + + Creates a new (incremental) solver. + + + + + Creates a solver that is implemented using the given tactic. + + + The solver supports the commands Push and Pop, but it + will always solve each check from scratch. + + + + + Create a Fixedpoint context. + + + + + Create an Optimization context. + + + + + Create the floating-point RoundingMode sort. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode. + + + + + Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode. + + + + + Create a FloatingPoint sort. + + exponent bits in the FloatingPoint sort. + significand bits in the FloatingPoint sort. + + + + Create the half-precision (16-bit) FloatingPoint sort. + + + + + Create the half-precision (16-bit) FloatingPoint sort. + + + + + Create the single-precision (32-bit) FloatingPoint sort. + + + + + Create the single-precision (32-bit) FloatingPoint sort. + + + + + Create the double-precision (64-bit) FloatingPoint sort. + + + + + Create the double-precision (64-bit) FloatingPoint sort. + + + + + Create the quadruple-precision (128-bit) FloatingPoint sort. + + + + + Create the quadruple-precision (128-bit) FloatingPoint sort. + + + + + Create a NaN of sort s. + + FloatingPoint sort. + + + + Create a floating-point infinity of sort s. + + FloatingPoint sort. + indicates whether the result should be negative. + + + + Create a floating-point zero of sort s. + + FloatingPoint sort. + indicates whether the result should be negative. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from an int. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two integers. + + the sign. + the significand. + the exponent. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers. + + the sign. + the significand. + the exponent. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a float. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from an int. + + numeral value. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two integers. + + the sign. + the exponent. + the significand. + FloatingPoint sort. + + + + Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers. + + the sign. + the exponent. + the significand. + FloatingPoint sort. + + + + Floating-point absolute value + + floating-point term + + + + Floating-point negation + + floating-point term + + + + Floating-point addition + + rounding mode term + floating-point term + floating-point term + + + + Floating-point subtraction + + rounding mode term + floating-point term + floating-point term + + + + Floating-point multiplication + + rounding mode term + floating-point term + floating-point term + + + + Floating-point division + + rounding mode term + floating-point term + floating-point term + + + + Floating-point fused multiply-add + + + The result is round((t1 * t2) + t3) + + rounding mode term + floating-point term + floating-point term + floating-point term + + + + Floating-point square root + + rounding mode term + floating-point term + + + + Floating-point remainder + + floating-point term + floating-point term + + + + Floating-point roundToIntegral. Rounds a floating-point number to + the closest integer, again represented as a floating-point number. + + term of RoundingMode sort + floating-point term + + + + Minimum of floating-point numbers. + + floating-point term + floating-point term + + + + Maximum of floating-point numbers. + + floating-point term + floating-point term + + + + Floating-point less than or equal. + + floating-point term + floating-point term + + + + Floating-point less than. + + floating-point term + floating-point term + + + + Floating-point greater than or equal. + + floating-point term + floating-point term + + + + Floating-point greater than. + + floating-point term + floating-point term + + + + Floating-point equality. + + + Note that this is IEEE 754 equality (as opposed to standard =). + + floating-point term + floating-point term + + + + Predicate indicating whether t is a normal floating-point number. + + floating-point term + + + + Predicate indicating whether t is a subnormal floating-point number. + + floating-point term + + + + Predicate indicating whether t is a floating-point number with zero value, i.e., +0 or -0. + + floating-point term + + + + Predicate indicating whether t is a floating-point number representing +oo or -oo. + + floating-point term + + + + Predicate indicating whether t is a NaN. + + floating-point term + + + + Predicate indicating whether t is a negative floating-point number. + + floating-point term + + + + Predicate indicating whether t is a positive floating-point number. + + floating-point term + + + + Create an expression of FloatingPoint sort from three bit-vector expressions. + + + 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. + + bit-vector term (of size 1) representing the sign. + bit-vector term representing the significand. + bit-vector term representing the exponent. + + + + Conversion of a single IEEE 754-2008 bit-vector into a floating-point number. + + + 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. + + bit-vector value (of size m). + FloatingPoint sort (ebits+sbits == m) + + + + Conversion of a FloatingPoint term into another term of different FloatingPoint sort. + + + 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. + + RoundingMode term. + FloatingPoint term. + FloatingPoint sort. + + + + Conversion of a term of real sort into a term of FloatingPoint sort. + + + 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. + + RoundingMode term. + term of Real sort. + FloatingPoint sort. + + + + Conversion of a 2's complement signed bit-vector term into a term of FloatingPoint sort. + + + 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. + + RoundingMode term. + term of bit-vector sort. + FloatingPoint sort. + flag indicating whether t is interpreted as signed or unsigned bit-vector. + + + + Conversion of a floating-point number to another FloatingPoint sort s. + + + 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. + + FloatingPoint sort + floating-point rounding mode term + floating-point term + + + + Conversion of a floating-point term into a bit-vector. + + + 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. + + RoundingMode term. + FloatingPoint term + Size of the resulting bit-vector. + Indicates whether the result is a signed or unsigned bit-vector. + + + + Conversion of a floating-point term into a real-numbered term. + + + 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. + + FloatingPoint term + + + + 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. + + FloatingPoint term. + + + + Conversion of a real-sorted significand and an integer-sorted exponent into a term of FloatingPoint sort. + + + 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. + + RoundingMode term. + Exponent term of Int sort. + Significand term of Real sort. + FloatingPoint sort. + + + + Wraps an AST. + + This function is used for transitions between native and + managed objects. Note that must be a + native object obtained from Z3 (e.g., through ) + and that it must have a correct reference count (see e.g., + . + + The native pointer to wrap. + + + + Unwraps an AST. + + 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., + ). + + The AST to unwrap. + + + + Return a string describing all available parameters to Expr.Simplify. + + + + + Update a mutable configuration parameter. + + + The list of all configuration parameters can be obtained using the Z3 executable: + z3.exe -p + Only a few configuration parameters are mutable once the context is created. + An exception is thrown when trying to modify an immutable parameter. + + + + + Finalizer. + + + + + Disposes of the context. + + + + + Retrieves the Boolean sort of the context. + + + + + Retrieves the Integer sort of the context. + + + + + Retrieves the Real sort of the context. + + + + + Retrieves the String sort of the context. + + + + + Selects the format used for pretty-printing expressions. + + + 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. + + + + + + + + + The number of SMTLIB formulas parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The formulas parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The number of SMTLIB assumptions parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The assumptions parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The number of SMTLIB declarations parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The declarations parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The number of SMTLIB sorts parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The declarations parsed by the last call to ParseSMTLIBString or ParseSMTLIBFile. + + + + + The number of supported tactics. + + + + + The names of all supported tactics. + + + + + The number of supported Probes. + + + + + The names of all supported Probes. + + + + + Retrieves parameter descriptions for simplifier. + + + + + AST DRQ + + + + + ASTMap DRQ + + + + + ASTVector DRQ + + + + + ApplyResult DRQ + + + + + FuncEntry DRQ + + + + + FuncInterp DRQ + + + + + Goal DRQ + + + + + Model DRQ + + + + + Params DRQ + + + + + ParamDescrs DRQ + + + + + Probe DRQ + + + + + Solver DRQ + + + + + Statistics DRQ + + + + + Tactic DRQ + + + + + FixedPoint DRQ + + + + + Optimize DRQ + + + + + Datatype expressions + + + + Constructor for DatatypeExpr + + + + Datatype sorts. + + + + + The number of constructors of the datatype sort. + + + + + The constructors. + + + + + The recognizers. + + + + + The constructor accessors. + + + + + The main interaction with Z3 happens via the Context. + + + + Z3_lbool + + + Z3_symbol_kind + + + Z3_parameter_kind + + + Z3_sort_kind + + + Z3_ast_kind + + + Z3_decl_kind + + + Z3_param_kind + + + Z3_ast_print_mode + + + Z3_error_code + + + Z3_goal_prec + + + + Enumeration sorts. + + + + + Retrieves the inx'th constant declaration in the enumeration. + + + + + + + Retrieves the inx'th constant in the enumeration. + + + + + + + Retrieves the inx'th tester/recognizer declaration in the enumeration. + + + + + + + The function declarations of the constants in the enumeration. + + + + + The constants in the enumeration. + + + + + The test predicates (recognizers) for the constants in the enumeration. + + + + + Finite-domain expressions + + + + Constructor for DatatypeExpr + + + + Finite-domain numerals + + + + + Returns a string representation of the numeral. + + + + + Retrieve the 64-bit unsigned integer value. + + + + + Retrieve the int value. + + + + + Retrieve the 64-bit int value. + + + + + Retrieve the int value. + + + + + Retrieve the BigInteger value. + + + + + Finite domain sorts. + + + + + The size of the finite domain sort. + + + + + Object for managing fixedpoints + + + + + Assert a constraint (or multiple) into the fixedpoint solver. + + + + + Alias for Assert. + + + + + Register predicate as recursive relation. + + + + + Add rule into the fixedpoint solver. + + + + + Add table fact to the fixedpoint solver. + + + + + 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. + + + + + 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. + + + + + Creates a backtracking point. + + + + + + Backtrack one backtracking point. + + Note that an exception is thrown if Pop is called without a corresponding Push + + + + + Update named rule into in the fixedpoint solver. + + + + + Retrieve satisfying instance or instances of solver, + or definitions for the recursive predicates that show unsatisfiability. + + + + + Retrieve explanation why fixedpoint engine returned status Unknown. + + + + + Retrieve the number of levels explored for a given predicate. + + + + + Retrieve the cover of a predicate. + + + + + Add property about the predicate. + The property is added at level. + + + + + Retrieve internal string representation of fixedpoint object. + + + + + Instrument the Datalog engine on which table representation to use for recursive predicate. + + + + + Convert benchmark given as set of axioms, rules and queries to a string. + + + + + Parse an SMT-LIB2 file with fixedpoint rules. + Add the rules to the current fixedpoint context. + Return the set of queries in the file. + + + + + Similar to ParseFile. Instead it takes as argument a string. + + + + + A string that describes all available fixedpoint solver parameters. + + + + + Sets the fixedpoint solver parameters. + + + + + Retrieves parameter descriptions for Fixedpoint solver. + + + + + Retrieve set of rules added to fixedpoint context. + + + + + Retrieve set of assertions added to fixedpoint context. + + + + + Fixedpoint statistics. + + + + + FloatingPoint Expressions + + + + Constructor for FPExpr + + + + The number of exponent bits. + + + + + The number of significand bits. + + + + + FloatiungPoint Numerals + + + + + Returns a string representation of the numeral. + + + + + Retrieves the sign of a floating-point literal + + + Remarks: returns true if the numeral is negative + + + + + The significand value of a floating-point numeral as a string + + + The significand s is always 0 < s < 2.0; the resulting string is long + enough to represent the real significand precisely. + + + + + The significand value of a floating-point numeral as a UInt64 + + + This function extracts the significand bits, without the + hidden bit or normalization. Throws an exception if the + significand does not fit into a UInt64. + + + + + Return the exponent value of a floating-point numeral as a string + + + + + Return the exponent value of a floating-point numeral as a signed 64-bit integer + + + + + FloatingPoint RoundingMode Expressions + + + + Constructor for FPRMExpr + + + + Floating-point rounding mode numerals + + + + + Returns a string representation of the numeral. + + + + Constructor for FPRMNum + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardPositive + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardNegative + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + Indicates whether the term is the floating-point rounding numeral roundTowardZero + + + + + The FloatingPoint RoundingMode sort + + + + + FloatingPoint sort + + + + + The number of exponent bits. + + + + + The number of significand bits. + + + + + Function declarations. + + + + + Comparison operator. + + True if and share the same context and are equal, false otherwise. + + + + Comparison operator. + + True if and do not share the same context or are not equal, false otherwise. + + + + Object comparison. + + + + + A hash code. + + + + + A string representations of the function declaration. + + + + + Create expression that applies function to arguments. + + + + + + + Returns a unique identifier for the function declaration. + + + + + The arity of the function declaration + + + + + The size of the domain of the function declaration + + + + + + The domain of the function declaration + + + + + The range of the function declaration + + + + + The kind of the function declaration. + + + + + The name of the function declaration + + + + + The number of parameters of the function declaration + + + + + The parameters of the function declaration + + + + + Create expression that applies function to arguments. + + + + + + + Function declarations can have Parameters associated with them. + + + + The int value of the parameter. + + + The double value of the parameter. + + + The Symbol value of the parameter. + + + The Sort value of the parameter. + + + The AST value of the parameter. + + + The FunctionDeclaration value of the parameter. + + + The rational string value of the parameter. + + + + The kind of the parameter. + + + + + 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. + + + + + A string representation of the function interpretation. + + + + + The number of entries in the function interpretation. + + + + + The entries in the function interpretation + + + + + The (symbolic) `else' value of the function interpretation. + + + + + The arity of the function interpretation + + + + + An Entry object represents an element in the finite map used to encode + a function interpretation. + + + + + A string representation of the function entry. + + + + + Return the (symbolic) value of this entry. + + + + + The number of arguments of the entry. + + + + + The arguments of the function entry. + + + + + Global functions for Z3. + + + This (static) class contains functions that effect the behaviour of Z3 + globally across contexts, etc. + + + + + Set a global (or module) parameter, which is shared by all Z3 contexts. + + + 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. + + + + + Get a global (or module) parameter. + + + Returns null if the parameter 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. + + + + + Restore the value of all global (and module) parameters. + + + This command will not affect already created objects (such as tactics and solvers) + + + + + + Enable/disable printing of warning messages to the console. + + Note that this function is static and effects the behaviour of + all contexts globally. + + + + Enable tracing messages tagged as `tag' when Z3 is compiled in debug mode. + + + It is a NOOP otherwise. + + trace tag + + + + Disable tracing messages tagged as `tag' when Z3 is compiled in debug mode. + + + It is a NOOP otherwise. + + trace tag + + + + A goal (aka problem). A goal is essentially a set + of formulas, that can be solved and/or transformed using + tactics and solvers. + + + + + Adds the to the given goal. + + + + + Alias for Assert. + + + + + Erases all formulas from the given goal. + + + + + Translates (copies) the Goal to the target Context . + + + + + Simplifies the goal. + + Essentially invokes the `simplify' tactic on the goal. + + + + Goal to string conversion. + + A string representation of the Goal. + + + + Goal to BoolExpr conversion. + + A string representation of the Goal. + + + + The precision of the goal. + + + 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. + + + + + Indicates whether the goal is precise. + + + + + Indicates whether the goal is an under-approximation. + + + + + Indicates whether the goal is an over-approximation. + + + + + Indicates whether the goal is garbage (i.e., the product of over- and under-approximations). + + + + + Indicates whether the goal contains `false'. + + + + + The depth of the goal. + + + This tracks how many transformations were applied to it. + + + + + The number of formulas in the goal. + + + + + The formulas in the goal. + + + + + The number of formulas, subformulas and terms in the goal. + + + + + Indicates whether the goal is empty, and it is precise or the product of an under approximation. + + + + + Indicates whether the goal contains `false', and it is precise or the product of an over approximation. + + + + + The InterpolationContext is suitable for generation of interpolants. + + For more information on interpolation please refer + too the C/C++ API, which is well documented. + + + + Constructor. + + + + + Constructor. + + + + + + Create an expression that marks a formula position for interpolation. + + + + + Computes an interpolant. + + For more information on interpolation please refer + too the function Z3_get_interpolant in the C/C++ API, which is + well documented. + + + + Computes an interpolant. + + For more information on interpolation please refer + too the function Z3_compute_interpolant in the C/C++ API, which is + well documented. + + + + Return a string summarizing cumulative time used for interpolation. + + For more information on interpolation please refer + too the function Z3_interpolation_profile in the C/C++ API, which is + well documented. + + + + Checks the correctness of an interpolant. + + For more information on interpolation please refer + too the function Z3_check_interpolant in the C/C++ API, which is + well documented. + + + + Reads an interpolation problem from a file. + + For more information on interpolation please refer + too the function Z3_read_interpolation_problem in the C/C++ API, which is + well documented. + + + + Writes an interpolation problem to a file. + + For more information on interpolation please refer + too the function Z3_write_interpolation_problem in the C/C++ API, which is + well documented. + + + + Int expressions + + + + Constructor for IntExpr + + + + Integer Numerals + + + + + Returns a string representation of the numeral. + + + + + Retrieve the 64-bit unsigned integer value. + + + + + Retrieve the int value. + + + + + Retrieve the 64-bit int value. + + + + + Retrieve the int value. + + + + + Retrieve the BigInteger value. + + + + + An Integer sort + + + + + Numbered symbols + + + + + Symbols are used to name several term and type constructors. + + + + + Indicates whether the symbol is of Int kind + + + + + Indicates whether the symbol is of string kind. + + + + + A string representation of the symbol. + + + + + Equality overloading. + + + + + Equality overloading. + + + + + Object comparison. + + + + + The Symbols's hash code. + + A hash code + + + + Symbol constructor + + + + + The kind of the symbol (int or string) + + + + + The int value of the symbol. + + Throws an exception if the symbol is not of int kind. + + + + List sorts. + + + + + The declaration of the nil function of this list sort. + + + + + The empty list. + + + + + The declaration of the isNil function of this list sort. + + + + + The declaration of the cons function of this list sort. + + + + + The declaration of the isCons function of this list sort. + + + + + + The declaration of the head function of this list sort. + + + + + The declaration of the tail function of this list sort. + + + + + Interaction logging for Z3. + + + Note that this is a global, static log and if multiple Context + objects are created, it logs the interaction with all of them. + + + + + Open an interaction log file. + + the name of the file to open + True if opening the log file succeeds, false otherwise. + + + + Closes the interaction log. + + + + + Appends the user-provided string to the interaction log. + + + + + Checks whether the interaction log is opened. + + True if the interaction log is open, false otherwise. + + + + A Model contains interpretations (assignments) of constants and functions. + + + + + Retrieves the interpretation (the assignment) of in the model. + + A Constant + An expression if the constant has an interpretation in the model, null otherwise. + + + + Retrieves the interpretation (the assignment) of in the model. + + A function declaration of zero arity + An expression if the function has an interpretation in the model, null otherwise. + + + + Retrieves the interpretation (the assignment) of a non-constant in the model. + + A function declaration of non-zero arity + A FunctionInterpretation if the function has an interpretation in the model, null otherwise. + + + + Evaluates the expression in the current model. + + + This function may fail if contains quantifiers, + is partial (MODEL_PARTIAL enabled), or if is not well-sorted. + In this case a ModelEvaluationFailedException is thrown. + + An expression + + 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. + + The evaluation of in the model. + + + + Alias for Eval. + + + + + The finite set of distinct values that represent the interpretation for sort . + + + An uninterpreted sort + An array of expressions, where each is an element of the universe of + + + + Conversion of models to strings. + + A string representation of the model. + + + + The number of constants that have an interpretation in the model. + + + + + The function declarations of the constants in the model. + + + + + The number of function interpretations in the model. + + + + + The function declarations of the function interpretations in the model. + + + + + All symbols that have an interpretation in the model. + + + + + The number of uninterpreted sorts that the model has an interpretation for. + + + + + The uninterpreted sorts that the model has an interpretation for. + + + 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. + + + + + + + A ModelEvaluationFailedException is thrown when an expression cannot be evaluated by the model. + + + + + The exception base class for error reporting from Z3 + + + + + Constructor. + + + + + Constructor. + + + + + Constructor. + + + + + An exception that is thrown when model evaluation fails. + + + + + Object for managing optimizization context + + + + + Assert a constraint (or multiple) into the optimize solver. + + + + + Assert a constraint (or multiple) into the optimize solver. + + + + + Alias for Assert. + + + + + Alias for Assert. + + + + + Assert a constraint (or multiple) into the optimize solver. + + + + + Assert soft constraint + + + Return an objective which associates with the group of constraints. + + + + + Check satisfiability of asserted constraints. + Produce a model that (when the objectives are bounded and + don't use strict inequalities) meets the objectives. + + + + + + Creates a backtracking point. + + + + + + Backtrack one backtracking point. + + Note that an exception is thrown if Pop is called without a corresponding Push + + + + + 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. + + + + + Declare an arithmetical minimization objective. + Similar to MkMaximize. + + + + + Retrieve a lower bound for the objective handle. + + + + + Retrieve an upper bound for the objective handle. + + + + + Print the context to a string (SMT-LIB parseable benchmark). + + + + + Parse an SMT-LIB2 file with optimization objectives and constraints. + The parsed constraints and objectives are added to the optimization context. + + + + + Similar to FromFile. Instead it takes as argument a string. + + + + + A string that describes all available optimize solver parameters. + + + + + Sets the optimize solver parameters. + + + + + Retrieves parameter descriptions for Optimize solver. + + + + + The model of the last Check. + + + The result is null if Check was not invoked before, + if its results was not SATISFIABLE, or if model production is not enabled. + + + + + Return a string the describes why the last to check returned unknown + + + + + The set of asserted formulas. + + + + + The set of asserted formulas. + + + + + Optimize statistics. + + + + + Handle to objectives returned by objective functions. + + + + + Retrieve a lower bound for the objective handle. + + + + + Retrieve an upper bound for the objective handle. + + + + + Retrieve the value of an objective. + + + + + A ParamDescrs describes a set of parameters. + + + + + validate a set of parameters. + + + + + Retrieve kind of parameter. + + + + + Retrieve documentation of parameter. + + + + + Retrieves a string representation of the ParamDescrs. + + + + + Retrieve all names of parameters. + + + + + The size of the ParamDescrs. + + + + + A Params objects represents a configuration in the form of Symbol/value pairs. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + Adds a parameter setting. + + + + + A string representation of the parameter set. + + + + + 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. + + + + + A string representation of the pattern. + + + + + The number of terms in the pattern. + + + + + The terms in the pattern. + + + + + 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 Context.NumProbes + and Context.ProbeNames. + It may also be obtained using the command (help-tactic) in the SMT 2.0 front-end. + + + + + Execute the probe over the goal. + + A probe always produce a double value. + "Boolean" probes return 0.0 for false, and a value different from 0.0 for true. + + + + Apply the probe to a goal. + + + + + Quantifier expressions. + + + + + Indicates whether the quantifier is universal. + + + + + Indicates whether the quantifier is existential. + + + + + The weight of the quantifier. + + + + + The number of patterns. + + + + + The patterns. + + + + + The number of no-patterns. + + + + + The no-patterns. + + + + + The number of bound variables. + + + + + The symbols for the bound variables. + + + + + The sorts of the bound variables. + + + + + The body of the quantifier. + + + + + Rational Numerals + + + + + Real expressions + + + + Constructor for RealExpr + + + + Returns a string representation in decimal notation. + + The result has at most decimal places. + + + + Returns a string representation of the numeral. + + + + + The numerator of a rational numeral. + + + + + The denominator of a rational numeral. + + + + + Converts the numerator of the rational to a BigInteger + + + + + Converts the denominator of the rational to a BigInteger + + + + + A real sort + + + + + Regular expression expressions + + + + Constructor for ReExpr + + + + Relation sorts. + + + + + The arity of the relation sort. + + + + + The sorts of the columns of the relation sort. + + + + + A regular expression sort + + + + + Sequence expressions + + + + Constructor for SeqExpr + + + + A Sequence sort + + + + + Set sorts. + + + + + Solvers. + + + + + Creates a backtracking point. + + + + + + Backtracks backtracking points. + + Note that an exception is thrown if is not smaller than NumScopes + + + + + Resets the Solver. + + This removes all assertions from the solver. + + + + Assert a constraint (or multiple) into the solver. + + + + + Alias for Assert. + + + + + Assert multiple constraints into the solver, and track them (in the unsat) core + using the Boolean constants in ps. + + + This API is an alternative to 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 + and the Boolean literals + provided using with assumptions. + + + + + Assert a constraint into the solver, and track it (in the unsat) core + using the Boolean constant p. + + + This API is an alternative to 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 + and the Boolean literals + provided using with assumptions. + + + + + Checks whether the assertions in the solver are consistent or not. + + + + + + + + + + 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. + + + + + + + + + + Create a clone of the current solver with respect to ctx. + + + + + A string representation of the solver. + + + + + A string that describes all available solver parameters. + + + + + Sets the solver parameters. + + + + + Retrieves parameter descriptions for solver. + + + + + The current number of backtracking points (scopes). + + + + + + + The number of assertions in the solver. + + + + + The set of asserted formulas. + + + + + The model of the last Check. + + + The result is null if Check was not invoked before, + if its results was not SATISFIABLE, or if model production is not enabled. + + + + + The proof of the last Check. + + + The result is null if Check was not invoked before, + if its results was not UNSATISFIABLE, or if proof production is disabled. + + + + + The unsat core of the last Check. + + + The unsat core is a subset of Assertions + The result is empty if Check was not invoked before, + if its results was not UNSATISFIABLE, or if core production is disabled. + + + + + A brief justification of why the last call to Check returned UNKNOWN. + + + + + Solver statistics. + + + + + Objects of this class track statistical information about solvers. + + + + + A string representation of the statistical data. + + + + + The number of statistical data. + + + + + The data entries. + + + + + The statistical counters. + + + + + The value of a particular statistical counter. + + Returns null if the key is unknown. + + + + Statistical data is organized into pairs of [Key, Entry], where every + Entry is either a DoubleEntry or a UIntEntry + + + + + The key of the entry. + + + + + The string representation of the Entry. + + + + + The uint-value of the entry. + + + + + The double-value of the entry. + + + + + True if the entry is uint-valued. + + + + + True if the entry is double-valued. + + + + + The string representation of the the entry's value. + + + + + Status values. + + + + + Used to signify an unsatisfiable status. + + + + + Used to signify an unknown status. + + + + + Used to signify a satisfiable status. + + + + + Named symbols + + + + + The string value of the symbol. + + Throws an exception if the symbol is not of string kind. + + + + Tactics are the basic building block for creating custom solvers for specific problem domains. + The complete list of tactics may be obtained using Context.NumTactics + and Context.TacticNames. + It may also be obtained using the command (help-tactic) in the SMT 2.0 front-end. + + + + + Execute the tactic over the goal. + + + + + A string containing a description of parameters accepted by the tactic. + + + + + Retrieves parameter descriptions for Tactics. + + + + + Apply the tactic to a goal. + + + + + Creates a solver that is implemented using the given tactic. + + + + + + DecRefQueue + + + + + Tuple sorts. + + + + + The constructor function of the tuple. + + + + + The number of fields in the tuple. + + + + + The field declarations. + + + + + Uninterpreted Sorts + + + + + Version information. + + Note that this class is static. + + + + A string representation of the version information. + + + + + The major version + + + + + The minor version + + + + + The build version + + + + + The revision + + + + + A full version string + + + + 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 Binary files /dev/null and b/rba.tool.editor.endpoint/lib/windows/z3/libz3.dll 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 Binary files /dev/null and b/rba.tool.editor.endpoint/lib/windows/z3/libz3.lib 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 Binary files /dev/null and b/rba.tool.editor.endpoint/lib/windows/z3/libz3java.dll 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 Binary files /dev/null and b/rba.tool.editor.endpoint/lib/windows/z3/libz3java.lib 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 Binary files /dev/null and b/rba.tool.editor.endpoint/lib/windows/z3/msvcp110.dll 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 Binary files /dev/null and b/rba.tool.editor.endpoint/lib/windows/z3/msvcr110.dll 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('')) + for k, v in self: + if even: + out.write(u('')) + even = False + else: + out.write(u('')) + even = True + out.write(u('' % (k, v))) + out.write(u('
%s%s
')) + 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 "sat" + elif self.r == Z3_L_FALSE: + return "unsat" + else: + return "unknown" + 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('') + for t in tactics(): + if even: + print('') + even = False + else: + print('') + even = True + print('' % (t, insert_line_breaks(tactic_description(t), 40))) + print('
%s%s
') + 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('') + for p in probes(): + if even: + print('') + even = False + else: + print('') + even = True + print('' % (p, insert_line_breaks(probe_description(p), 40))) + print('
%s%s
') + 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("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 _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("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_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("proved") + elif r == unknown: + print("failed to prove") + print(s.model()) + else: + print("counterexample") + 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 = '…' +# Overwrite some of the operators for HTML +_z3_pre_html_op_to_str = { Z3_OP_EQ : '=', Z3_OP_IFF : '=', Z3_OP_NOT : '¬', + Z3_OP_AND : '∧', Z3_OP_OR : '∨', Z3_OP_IMPLIES : '⇒', + Z3_OP_LT : '<', Z3_OP_GT : '>', Z3_OP_LE : '≤', Z3_OP_GE : '≥', + Z3_OP_MUL : '·', + Z3_OP_SLEQ : '≤', Z3_OP_SLT : '<', Z3_OP_SGEQ : '≥', Z3_OP_SGT : '>', + Z3_OP_ULEQ : '≤u', Z3_OP_ULT : '<u', + Z3_OP_UGEQ : '≥u', Z3_OP_UGT : '>u', + Z3_OP_BMUL : '·', + Z3_OP_BUDIV : '/u', Z3_OP_BUREM : '%u', + Z3_OP_BASHR : '>>', Z3_OP_BSHL : '<<', + Z3_OP_BLSHR : '>>u' + } + +# 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 "ζ%s" % 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 '' + 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 '' + + 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(' →', 1) + + def pp_unknown(self): + return 'unknown' + + 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%s' % (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("≠") + + 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('', 1), arg2_pp, to_format('', 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('ν%s' % 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 = '∀' + else: + header = '∃' + 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('') + for r in m: + _z3_assert(isinstance(r, list) or isinstance(r, tuple), "matrix expected") + print('') + for c in r: + print('' % c) + print('') + print('
%s
') + +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('
')) + 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 +############################################ +""" +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 Binary files /dev/null and b/rba.tool.editor.endpoint/lib/windows/z3/vcomp110.dll 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 Binary files /dev/null and b/rba.tool.editor.endpoint/lib/windows/z3/z3.exe 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 @@ + + 4.0.0 + rba.tool.editor + 1.0.0 + rba.tool.editor.endpoint + war + + + 1.0.0 + 2.13.0 + UTF-8 + 1.8 + 1.8 + + + + src + + + src + + **/*.java + **/*.xtend + + + + + + org.eclipse.xtend + xtend-maven-plugin + + + maven-war-plugin + 2.6 + + WebRoot + false + + + + org.eclipse.jetty + jetty-maven-plugin + 9.2.13.v20150730 + + WebRoot + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.9.1 + + + add-source + initialize + + add-source + add-resource + + + + src-gen + + + + src-gen + + **/*.java + + + + + + + + + + + + org.eclipse.xtend + xtend-maven-plugin + ${xtextVersion} + + + org.eclipse.platform + org.eclipse.equinox.common + 3.10.0 + + + + + + compile + xtend-install-debug-info + testCompile + xtend-test-install-debug-info + + + + + ${basedir}/xtend-gen + ${basedir}/xtend-gen + + + + org.apache.maven.plugins + maven-clean-plugin + 2.5 + + + + ${basedir}/xtend-gen + + **/* + + ${basedir}/xtend-gen + + **/* + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.apache.maven.plugins + + + maven-resources-plugin + + + [2.4.3,) + + + resources + testResources + + + + + + + + + + org.codehaus.mojo + + + build-helper-maven-plugin + + + [1.9.1,) + + + add-resource + add-source + add-test-resource + add-test-source + + + + + + + + + + org.eclipse.tycho + + + tycho-compiler-plugin + + + [0.23.1,) + + + compile + + + + + + + + + + org.eclipse.tycho + + + tycho-packaging-plugin + + + [0.23.1,) + + + build-qualifier + build-qualifier-aggregator + validate-id + validate-version + + + + + + + + + + + + + org.eclipse.tycho + tycho-compiler-plugin + ${tycho-version} + + -err:-forbidden + false + + + + + + + + + eclipse oxygen + http://download.eclipse.org/releases/oxygen/201709271000/ + + + eclipse modeling + http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.1/ + + + eclipse xtext + http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.13.0/ + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + + + org.eclipse.xtext + org.eclipse.xtext.xbase.web + ${xtextVersion} + + + org.eclipse.xtext + org.eclipse.xtext.web.servlet + ${xtextVersion} + + + org.eclipse.xtend + org.eclipse.xtend.lib + ${xtextVersion} + + + org.webjars + requirejs + 2.3.2 + + + org.webjars + jquery + 2.2.4 + + + org.webjars + ace + 1.2.3 + + + org.eclipse.jetty + jetty-annotations + 9.3.8.v20160314 + provided + + + org.eclipse.jetty + jetty-client + 9.3.8.v20160314 + provided + + + org.slf4j + slf4j-simple + 1.7.25 + provided + + + 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 allAreas; + static List allZones; + static List allViewContents; + static List allSoundContents; + + static void setAll(List areas, List zones, List viewContents, List 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 getLeafContentList(AbstractContent ac) { + Collection result = new ArrayList(); + 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 getAllocatableList(AbstractContent ac) { + Collection result = new ArrayList(); + Collection allocatables = new ArrayList(); + 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()); + s = indentSet(s, nest-1); + s = s + '}'; + return s; + } + static String jsonConstractorOtherThan(EObject eO, int nest, Collection 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 list = (EList)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 sflist = new ArrayList(eO.eClass().getEAllContainments()); + for (EStructuralFeature i : sflist) { + if (excepts.contains(i.getName())) continue; + if (i.isMany()) { + EList list = (EList)eO.eGet(i); + if (list.isEmpty()) + continue; + s = s + ","; + s = indentSet(s, nest); + s = s + '\"' + i.getName() + '\"' + ':'; + s = s + "["; + for (Iterator 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 getRelatedObjectOf(EObject eO) { + Collection result = new HashSet(); + 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 getAllocatableComparator() { + return new Comparator() { + @Override + public int compare(AbstractAllocatable o1, AbstractAllocatable o2) { + return o1.name.compareTo(o2.name); + } + } + } +} + +class ConstraintAllocMap extends HashMap> { + 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()); + } + 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 allAreas; + static List allZones; + static List allViewContents; + static List allSoundContents; + + static void setAll(List areas, List zones, List viewContents, List 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 bindIWebResourceSetProvider() { + return RBAModelResourceSetProvider + } + + def void configureResourceBaseProvider(Binder binder) { + if (resourceBaseProvider !== null) binder.bind(IResourceBaseProvider).toInstance(resourceBaseProvider) + } + + def Class bindIServerResourceHandler() { + return RBAModelServerResourceHandler + } + + def Class bindRBAModelServiceDispatcher() { + return RBAModelServiceDispatcher + } + + def Class bindIGenerator2() { + return RBAModelWebGenerator + } + + def Class 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 fi = eo.eCrossReferences.iterator as EContentsEList.FeatureIterator; + 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); + 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 getAllocatables() { + return resourceManager.getRbaAllocatables(resourceSet) + } + + def List getAreas() { + return resourceManager.getRbaAreas(resourceSet) + } + + def List getZones() { + return resourceManager.getRbaZones(resourceSet) + } + + def List getAreaSets() { + return resourceManager.getRbaAreaSets(resourceSet) + } + + def List getZoneSets() { + return resourceManager.getRbaZoneSets(resourceSet) + } + + def List getContents() { + return resourceManager.getRbaContents(resourceSet) + } + + def List getViewContents() { + return resourceManager.getRbaViewContents(resourceSet) + } + + def List getViewContentSets() { + return resourceManager.getRbaViewContentSets(resourceSet) + } + + def List getSoundContents() { + return resourceManager.getRbaSoundContents(resourceSet) + } + + def List getSoundContentSets() { + return resourceManager.getRbaSoundContentSets(resourceSet) + } + + def List getStates() { + return resourceManager.getRbaState(resourceSet) + } + + def List getScenes() { + return resourceManager.getRbaScenes(resourceSet) + } + + def List getSizes() { + return resourceManager.getRbaSizes(resourceSet) + } + + def List getDisplays() { + return resourceManager.getRbaDisplays(resourceSet) + } + + def List getPositionContainers() { + return resourceManager.getRbaPositionContainers(resourceSet) + } + + def List getPackages() { + return resourceManager.getRbaPackages(resourceSet) + } + + def List getRootPackages() { + return resourceManager.getRbaRootPackages(resourceSet) + } + + def List getConstraints() { + return resourceManager.getRbaConstraints(resourceSet) + } + + def List getOnlineConstraints() { + return resourceManager.getRbaOnlineConstraints(resourceSet) + } + + def List getOfflineConstraints() { + return resourceManager.getRbaOfflineConstraints(resourceSet) + } + + def List getViewConstraints() { + return resourceManager.getRbaViewConstraints(resourceSet) + } + + def List getSoundConstraints() { + return resourceManager.getRbaSoundConstraints(resourceSet) + } + + + def List getVariables() { + return resourceManager.getRbaVariables(resourceSet) + } + + def List 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 List collect(Class clazz) { + var results = new ArrayList(); + 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 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 + 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 + + 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 + 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() { + 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 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 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 @@ + + + + + + + + + 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 @@ + + + rba.tool.editor.ide + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + 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/=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 bindIContentAssistParser() { + return RBAModelParser.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIProposalConflictHelper() { + return AntlrProposalConflictHelper.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2 + public Class bindIPrefixMatcher() { + return FQNPrefixMatcher.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2 + public Class bindIRenameService() { + return RenameService.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2 + public Class 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 getFollowElements(AbstractInternalContentAssistParser parser) { + if (rule == null || rule.eIsProxy()) + return Collections.emptyList(); + String methodName = "entryRule" + rule.getName(); + PolymorphicDispatcher> dispatcher = + new PolymorphicDispatcher>(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 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() { + 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", "", "", "", "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 @@ + + + + + + + + + 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 @@ + + + rba.tool.editor.ui + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + 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/=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 Binary files /dev/null and b/rba.tool.editor.ui/icons/newProject.gif 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 provideIAllContainersState() { + return Access.getJavaProjectsState(); + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class 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 bindContentAssistContext$Factory() { + return DelegatingContentAssistContextFactory.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class 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 bindPrefixMatcher() { + return FQNPrefixMatcher.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2 + public Class 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 bindIContentFormatterFactory() { + return ContentFormatterFactory.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2 + public Class 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 bindIOutlineTreeProvider() { + return RBAModelOutlineTreeProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2 + public Class bindIOutlineTreeStructureProvider() { + return RBAModelOutlineTreeProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.quickfix.QuickfixProviderFragment2 + public Class bindIssueResolutionProvider() { + return RBAModelQuickfixProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.contentAssist.ContentAssistFragment2 + public Class 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 bindIRenameStrategy() { + return DefaultRenameStrategy.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2 + public Class bindIReferenceUpdater() { + return DefaultReferenceUpdater.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2 + public Class bindIRenameRefactoringProvider() { + return DefaultRenameRefactoringProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2 + public Class bindIRenameSupport$Factory() { + return DefaultRenameSupport.Factory.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + public Provider provideTemplatesLanguageConfiguration() { + return AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider(); + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + public Provider provideLanguageRegistry() { + return AccessibleCodetemplatesActivator.getLanguageRegistry(); + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + @SingletonBinding(eager=true) + public Class bindLanguageRegistrar() { + return LanguageRegistrar.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + public Class bindXtextTemplatePreferencePage() { + return AdvancedTemplatesPreferencePage.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + public Class bindIPartialEditingContentAssistParser() { + return PartialRBAModelContentAssistParser.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + public Class bindIPartialEditingContentAssistContextFactory() { + return PartialEditingContentAssistContextFactory.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2 + public Class 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 bindIProjectCreator() { + return RBAModelProjectCreator.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.exporting.SimpleNamesFragment2 + public Class 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 bindIXtextEditorCallback() { + return NatureAddingEditorCallback.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public Class 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 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 injectors = Collections.synchronizedMap(Maps. 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 fileSystemAccessProvider; + + @Inject + private IOutputConfigurationProvider outputConfigurationProvider; + + @Inject + private Provider 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 getAllFolders() { + Set 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 outputConfigurations = new HashMap(); + 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 bindILexicalHighlightingConfiguration() { + return RBAModelHighlightingConfiguration; + } + + def Class bindAbstractAntlrTokenToAttributeIdMapper() { + return RBAModelAntlrTokenToAttributeIdMapper; + } + + def public Class bindRenameRefactoringController() { + return RBAModelRenameRefactoringController; + } + + override bindIProjectCreator() { + return ExtendRBAModelProjectCreator; + } + + override bindIXtextBuilderParticipant() { + return RBAModelBuilderParticipant; + } + + override bindIResourceSetProvider() { + return RBADocumentResourceSetProvider; + } + + def public Class bindRBAModelResourceSetProvider() { + return RBAModelResourceSetProvider; + } + + def public Class bindRBAModelSyncUtil() { + return RBAModelSyncUtil; + } + + def public Class bindILastSegmentFinder() { + return RBAModelLastSegmentFinder; + } + + def public Class bindRBAModelExpressionScopeCreator() { + return RBAModelExpressionScopeCreator; + } + + def public Class bindTemplateRegistry() { + return RBAModelTemplateRegistry; + } + + override bindTemplateStore() { + return RBAModelTemplateStore; + } + + def public Class bindIRBAModelResourceLoader() { + return RBAModelResourceLoader; + } + + def public Class bindDefaultResourceUIValidatorExtension() { + return RBAModelResourceUIValidatorExtension; + } + + def public Class bindMarkerCreator() { + return RBAModelMarkerCreator + } + + def public Class 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 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 configurations = outputConfigurationProvider.getOutputConfigurations(context.getBuiltProject()); + configurations.addAll(generatorDelegate.RBAModelGeneratorOutputConfigurations); + return uniqueIndex(configurations, new Function() { + override apply(OutputConfiguration from) { + return from.getName(); + } + }); + } + + override protected doBuild(List deltas, Map outputConfigurations, Map> 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 URIs = new ArrayList(); + 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 toBeUpdated = new HashSet(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 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 getQueue(URI[] URIs) { + val LinkedList list = new LinkedList(URIs); + return new AbstractQueue() { + 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 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 getFeatureDescriptionPredicate(CrossReference crossReference, ContentAssistContext contentAssistContext) { + return Predicates.and(new Predicate() { + 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 filter = Predicates.and(new Predicate() { + 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 filter = Predicates.and(new Predicate() { + 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 filter = Predicates.and(new Predicate() { + 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 filter = Predicates.and(new Predicate() { + 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 filter = Predicates.and(new Predicate() { + 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 filter = Predicates.and(new Predicate() { + 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 filter = Predicates.and(new Predicate() { + 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 filter = Predicates.and(new Predicate() { + 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.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 getAddProcessor(EObject owner, EStructuralFeature feature, Object object, int index) { + return new IUnitOfWork.Void() { + 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 getRemoveProcessor(EObject owner, EStructuralFeature feature, Collection collection) { + return new IUnitOfWork.Void() { + 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 getSetProcessor(EObject owner, EStructuralFeature feature, Object value) { + return new IUnitOfWork.Void() { + 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 getUnexecutableProcessor() { + return new IUnitOfWork.Void() { + 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; + 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 collection) { + if(feature.isMany()) { + val List objects = new ArrayList(collection); + val List sibling = owner.eGet(feature) as List; + 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 values = if(value == UNSET_VALUE) Collections.EMPTY_LIST else value as List; + val EList oldValues = owner.eGet(feature) as EList; + + if(!oldValues.isEmpty()) { + if(!values.isEmpty()) { + val List removedValues = new BasicEList.FastCompare(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 remainingValues = new BasicEList.FastCompare(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 addedValues = new BasicEList.FastCompare(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() { + @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() { + @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 adapterFactorys = new ArrayList; + + 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 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 collection) { + if (feature === null || collection === null || collection.isEmpty()) { + return; + } + + val List objects = new ArrayList(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 siblings = new ArrayList(); + 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() { + 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 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